A Path is the name of a file or some other resource.
A general path, which can be a
filename
or aURI
. It can be either afilename
or aURI
. Represented using the abstract Java classjava.text.Path
.Coercing a value to a
Path
is equivalent to calling thepath
constructor documented below.
Coerces the
arg
to apath
. Ifarg
is already apath
, it is returned unchanged. Ifarg
is ajava.net.URI
, or ajava.net.URL
then aURI
value is returned. Ifarg
is ajava.io.File
, afilepath
value is returned. Otherwise,arg
can be a Scheme string or ajava.lang.String
. AURI
value is returns if the string starts with a URI scheme (such as"http:"
), and afilepath
value is returned otherwisw.
The name of a local file. Represented using the Java class
gnu.text.FilePath
, which is a wrapper aroundjava.io.File
.
A Uniform Resource Indicator, which is a generalization of the more familiar URL. The general format is specified by RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax. Represented using the Java class
gnu.text.URIPath
, which is a wrapper aroundjava.net.URI
. A URI can be a URL, or it be a relative URI.
Returns the “URI scheme” of
arg
(coerced to apath
) if it is defined, or#f
otherwise. The URI scheme of afilepath
is"file"
if thefilepath
is absolute, and#f
otherwise.(path-scheme "http://gnu.org/") ⇒ "http"
Returns the authority part of
arg
(coerced to apath
) if it is defined, or#f
otherwise. The “authority” is usually the hostname, but may also include user-info or a port-number.(path-authority "http://me@localhost:8000/home") ⇒ "me@localhost:8000"
Returns the name name part of
arg
(coerced to apath
) if it is defined, or#f
otherwise.(path-host "http://me@localhost:8000/home") ⇒ "localhost"
Returns the “user info” of
arg
(coerced to apath
) if it is specified, or#f
otherwise.(path-host "http://me@localhost:8000/home") ⇒ "me"
Returns the port number of
arg
(coerced to apath
) if it is specified, or-1
otherwise. Even if there is a default port associated with a URI scheme (such as 80 forhttp
), the value -1 is returned unless the port number is explictly specified.(path-host "http://me@localhost:8000/home") ⇒ 8000 (path-host "http://me@localhost/home") ⇒ -1
Returns the “path component” of the
arg
(coerced to apath
). (The namepath-path
might be more logical, but it is obviously a bit awkward.) The path component of a file name is the file name itself. For a URI, it is the main hierarchical part of the URI, without schema, authority, query, or fragment.(path-file "http://gnu.org/home/me.html?add-bug#body") ⇒ "/home/me.html"
If
arg
(coerced to apath
) is directory, returnarg
; otherwise return the “parent” path, without the final component.(path-directory "http://gnu.org/home/me/index.html#body") ⇒ (path "http://gnu.org/home/me/") (path-directory "http://gnu.org/home/me/") ⇒ (path "http://gnu.org/home/me/")
(path-directory "./dir")
⇒
(path "./dir")
ifdir
is a directory, and(path ".")
otherwise.
Returns the “parent directory” of
arg
(coerced to apath
). Ifarg
is not a directory, same aspath-directory
.arg
(path-parent "a/b/c") ⇒ (path "a/b") (path-parent "file:/a/b/c") ⇒ (path "file:/a/b/c") (path-parent "file:/a/b/c/") ⇒ (path "file:/a/b/")
The last component of path component of
arg
(coerced to apath
). Returns a substring of(path-file
. If that string ends with ‘arg
)/
’ or the path separator, that last character is ignored. Returns the tail of the path-string, following the last (non-final) ‘/
’ or path separator.(path-last "http:/a/b/c") ⇒ "c" (path-last "http:/a/b/c/") ⇒ "c" (path-last "a/b/c") ⇒ "c"
Returns the “extension” of the
arg
(coerced to apath
).(path-extension "http://gnu.org/home/me.html?add-bug#body") ⇒ "html" (path-extension "/home/.init") ⇒ #f
Returns the query part of
arg
(coerced to apath
) if it is defined, or#f
otherwise. The query of a URI is the part of after ‘?
’.(path-query "http://gnu.org/home?add-bug") ⇒ "add-bug"