Implemented by
The nsIURL interface provides convenience methods that further
break down the path portion of nsIURI:
http://directory/fileBaseName.fileExtension?query
http://directory/fileBaseName.fileExtension#ref
http://directory/fileBaseName.fileExtension;param
/
-----------------------
| /
fileName /
----------------------------
|
filePath
@status FROZEN
[scriptable, uuid(d6116970-8034-11d3-9399-00104ba0fd40)]
interface nsIURL : nsIURI
Attributes
The URL filepath is broken down into the following sub-components: Returns the directory portion of a URL. If the URL denotes a path to a directory and not a file, e.g. http://foo/bar/, then the Directory attribute accesses the complete /foo/bar/ portion, and the FileName is the empty string. If the trailing slash is omitted, then the Directory is /foo/ and the file is bar (i.e. this is a syntactic, not a semantic breakdown of the Path). And hence dont rely on this for something to be a definitely be a file. But you can get just the leading directory portion for sure. Some characters may be escaped.
attribute
AUTF8String
directory
The URL filename is broken down even further: Returns the file basename portion of a filename in a url. Some characters may be escaped.
attribute
AUTF8String
fileBaseName
Returns the file extension portion of a filename in a url. If a file extension does not exist, the empty string is returned. Some characters may be escaped.
attribute
AUTF8String
fileExtension
Returns the file name portion of a URL. If the URL denotes a path to a directory and not a file, e.g. http://foo/bar/, then the Directory attribute accesses the complete /foo/bar/ portion, and the FileName is the empty string. Note that this is purely based on searching for the last trailing slash. And hence dont rely on this to be a definite file. Some characters may be escaped.
attribute
AUTF8String
fileName
The URL path is broken down into the following principal components: Returns a path including the directory and file portions of a URL. For example, the filePath of "http://foo/bar.html#baz" is "/foo/bar.html". Some characters may be escaped.
attribute
AUTF8String
filePath
Returns the parameters specified after the ; in the URL. Some characters may be escaped.
attribute
AUTF8String
param
Returns the query portion (the part after the "?") of the URL. If there isn't one, an empty string is returned. Some characters may be escaped.
attribute
AUTF8String
query
Returns the reference portion (the part after the "#") of the URL. If there isn't one, an empty string is returned. Some characters may be escaped.
attribute
AUTF8String
ref
Methods
This method takes a uri and compares the two. The common uri portion
is returned as a string. The minimum common uri portion is the
protocol, and any of these if present: login, password, host and port
If no commonality is found, "" is returned. If they are identical, the
whole path with file/ref/etc. is returned. For file uris, it is
expected that the common spec would be at least "file:///" since '/' is
a shared common root.
Examples:
this.spec aURIToCompare.spec result
1) http://mozilla.org/ http://www.mozilla.org/ ""
2) http://foo.com/bar/ ftp://foo.com/bar/ ""
3) http://foo.com:8080/ http://foo.com/bar/ ""
4) ftp://user@foo.com/ ftp://user:pw@foo.com/ ""
5) ftp://foo.com/bar/ ftp://foo.com/bar ftp://foo.com/
6) ftp://foo.com/bar/ ftp://foo.com/bar/b.html ftp://foo.com/bar/
7) http://foo.com/a.htm#i http://foo.com/b.htm http://foo.com/
8) ftp://foo.com/c.htm#i ftp://foo.com/c.htm ftp://foo.com/c.htm
9) file:///a/b/c.html file:///d/e/c.html file:///
AUTF8String
getCommonBaseSpec(in nsIURI aURIToCompare)
This method takes a uri and returns a substring of this if it can be made relative to the uri passed in. If no commonality is found, the entire uri spec is returned. If they are identical, "" is returned. Filename, query, etc are always returned except when uris are identical.
AUTF8String
getRelativeSpec(in nsIURI aURIToCompare)
Compare to: