nsILocalFile

IID:aa610f20-a889-11d3-8c81-000064657374
Inherits From:nsIFile
Status:FROZEN

This interface adds methods to nsIFile that are particular to a file that is accessible via the local file system.

It follows the same string conventions as nsIFile.

This interface is intended to be used as an instance. To create an object implementing this interface:

var obj = Components.classes["@mozilla.org/file/local;1"].
            createInstance(Components.interfaces.nsILocalFile);

This interface is implemented by the following components:


Properties

readonly PRInt64 diskSpaceAvailable

PRBool followLinks

FollowLinks

This attribute will determine if the nsLocalFile will auto resolve symbolic links. By default, this value will be false on all non unix systems. On unix, this attribute is effectively a noop.

ACString persistentDescriptor

Accessor to a null terminated string which will specify the file in a persistent manner for disk storage.

The character set of this attribute is undefined. DO NOT TRY TO INTERPRET IT AS HUMAN READABLE TEXT!


Methods

[noscript] void appendRelativeNativePath ( ACString relativeFilePath ) void appendRelativePath ( AString relativeFilePath ) ACString getRelativeDescriptor ( nsILocalFile fromFile ) void initWithFile ( nsILocalFile file ) [noscript] void initWithNativePath ( ACString filePath ) void initWithPath ( AString filePath ) void launch ( ) [noscript] PRLibrary* load ( ) [noscript] FILE* openANSIFileDesc ( char* mode ) [noscript] PRFileDesc* openNSPRFileDesc ( PRInt32 flags , PRInt32 mode ) void reveal ( ) void setRelativeDescriptor ( nsILocalFile fromFile , ACString relativeDesc )

void appendRelativeNativePath ( ACString relativeFilePath )

Arguments:
relativeFilePath

void appendRelativePath ( AString relativeFilePath )

AppendRelative[Native]Path

Append a relative path to the current path of the nsILocalFile object.

Arguments:
relativeFilePath: relativeFilePath is a native relative path. For security reasons, this cannot contain .. or cannot start with a directory separator. For the |appendRelativeNativePath| method, the relativeFilePath must be in the native filesystem charset.

ACString getRelativeDescriptor ( nsILocalFile fromFile )

Returns a relative file path in an opaque, XP format. It is therefore not a native path.

The character set of the string returned from this function is undefined. DO NOT TRY TO INTERPRET IT AS HUMAN READABLE TEXT!

Arguments:
fromFile: the file from which the descriptor is relative. There is no defined result if this param is null.

void initWithFile ( nsILocalFile file )

Initialize this object with another file

Arguments:
file: the file this becomes equivalent to

void initWithNativePath ( ACString filePath )

Arguments:
filePath

void initWithPath ( AString filePath )

InitWith[Native]Path

This function will initialize the nsILocalFile object. Any internal state information will be reset.

NOTE: This function has a known bug on the macintosh and other OSes which do not represent file locations as paths. If you do use this function, be very aware of this problem!

Arguments:
filePath: A string which specifies a full file path to a location. Relative paths will be treated as an error (NS_ERROR_FILE_UNRECOGNIZED_PATH). For initWithNativePath, the filePath must be in the native filesystem charset.

void launch ( )

Ask the operating system to attempt to open the file. this really just simulates "double clicking" the file on your platform. This routine only works on platforms which support this functionality.


PRLibrary* load ( )


FILE* openANSIFileDesc ( char* mode )

Arguments:
mode

PRFileDesc* openNSPRFileDesc ( PRInt32 flags , PRInt32 mode )

Arguments:
flags
mode

void reveal ( )

Ask the operating system to open the folder which contains this file or folder. This routine only works on platforms which support the ability to open a folder...


void setRelativeDescriptor ( nsILocalFile fromFile , ACString relativeDesc )

Initializes the file to the location relative to fromFile using a string returned by getRelativeDescriptor.

Arguments:
fromFile: the file to which the descriptor is relative
relativeDesc

References

This interface is the type of the following properties:

nsIAddrBookSession.userProfileDirectory, nsIDownload.targetFile, nsIFilePicker.displayDirectory, nsIFilePicker.file, nsIMsgFolder.filePath, nsIMsgIdentity.signature, nsIMsgSearchScopeTerm.mailFile, nsIProfileLock.directory, nsIProfileLock.localDirectory, nsIRelativeFilePref.file, nsIRssIncomingServer.feedItemsDataSourcePath, nsIRssIncomingServer.subscriptionsDataSourcePath, nsIToolkitProfile.localDir, nsIToolkitProfile.rootDir

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

nsIDownloadManager.addDownload, nsILocalFile.getRelativeDescriptor, nsILocalFile.initWithFile, nsILocalFile.setRelativeDescriptor, nsILocalFileMac.launchWithDoc, nsILocalFileMac.openDocWithApp, nsIMessenger.saveAttachmentToFolder, nsIPref.setFileXPref, nsIToolkitProfileService.createProfile, nsIToolkitProfileService.lockProfilePath, nsITransfer.init, nsIURLFetcher.fireURLRequest, nsIURLFetcher.initialize, nsIX509CertDB.exportPKCS12File, nsIX509CertDB.importCertsFromFile, nsIX509CertDB.importPKCS12File, nsIXPTLoader.enumerateEntries, nsIXPTLoader.loadEntry

This interface is returned from the following methods:

nsIHelperAppLauncherDialog.promptForSaveToFile, nsIMessenger.saveAttachmentToFolder, nsIPref.getFileXPref, nsIProfileInternal.getOriginalProfileDir

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
April 6, 2005, 7:03 pm code at home dot com
To write to a file, use:

function writeFile( sFilePath, sFileContent )
{
try
{
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.QueryInterface(Components.interfaces.nsIFile);
file.initWithPath( sFilePath );
if( file.exists() == true ) file.remove( false );
var strm = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
strm.QueryInterface(Components.interfaces.nsIOutputStream);
strm.QueryInterface(Components.interfaces.nsISeekableStream);
strm.init( file, 0x04 | 0x08, 420, 0 );
strm.write( sFileContent, sFileContent.length );
strm.flush();
strm.close();
}
catch(ex)
{
window.alert(ex.message);
}
}

Copyright © 1999 - 2005 XULPlanet.com