nsIURL

IID:d6116970-8034-11d3-9399-00104ba0fd40
Inherits From:nsIURI
Status:FROZEN

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

An object of this interface must be created in the following way:

ioService.newURI(uri, charset, baseuri);

This interface is implemented by the following components:


Properties

AUTF8String directory

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.

AUTF8String fileBaseName

Returns the file basename portion of a filename in a url.

Some characters may be escaped.

AUTF8String fileExtension

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.

AUTF8String fileName

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.

AUTF8String filePath

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.

AUTF8String param

Returns the parameters specified after the ; in the URL.

Some characters may be escaped.

AUTF8String query

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.

AUTF8String ref

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.


Methods

AUTF8String getCommonBaseSpec ( nsIURI URIToCompare ) AUTF8String getRelativeSpec ( nsIURI URIToCompare )

AUTF8String getCommonBaseSpec ( nsIURI URIToCompare )

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 uRIToCompare.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:///

Arguments:
URIToCompare

AUTF8String getRelativeSpec ( nsIURI URIToCompare )

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.

Arguments:
URIToCompare

References

This interface is the type of the following properties:

nsIXmlRpcClient.serverURL

This interface is passed as an argument to the following methods:

nsIContentFilter.notifyOfInsertion, nsISound.play

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
No comments available

Copyright © 1999 - 2005 XULPlanet.com