123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla Communicator client code, released
- * March 31, 1998.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998-1999
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Doug Turner <[email protected]>
- * Darin Fisher <[email protected]>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
- #include "nsIFile.idl"
- %{C++
- #include "prio.h"
- #include "prlink.h"
- #include <stdio.h>
- %}
- [ptr] native PRFileDescStar(PRFileDesc);
- [ptr] native PRLibraryStar(PRLibrary);
- [ptr] native FILE(FILE);
- /**
- * 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.
- *
- * @status FROZEN
- */
- [scriptable, uuid(aa610f20-a889-11d3-8c81-000064657374)]
- interface nsILocalFile : nsIFile
- {
- /**
- * 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!
- *
- * @param 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 initWithPath(in AString filePath);
- [noscript] void initWithNativePath(in ACString filePath);
-
- /**
- * initWithFile
- *
- * Initialize this object with another file
- *
- * @param aFile
- * the file this becomes equivalent to
- */
- void initWithFile(in nsILocalFile aFile);
-
- /**
- * 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.
- */
- attribute PRBool followLinks;
- [noscript] PRFileDescStar openNSPRFileDesc(in long flags, in long mode);
- [noscript] FILE openANSIFileDesc(in string mode);
- [noscript] PRLibraryStar load();
-
- readonly attribute PRInt64 diskSpaceAvailable;
- /**
- * appendRelative[Native]Path
- *
- * Append a relative path to the current path of the nsILocalFile object.
- *
- * @param 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.
- */
- void appendRelativePath(in AString relativeFilePath);
- [noscript] void appendRelativeNativePath(in ACString relativeFilePath);
-
- /**
- * 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!
- */
- attribute ACString persistentDescriptor;
- /**
- * 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 reveal();
-
- /**
- * 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.
- */
- void launch();
-
- /**
- * getRelativeDescriptor
- *
- * 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!
- *
- * @param fromFile
- * the file from which the descriptor is relative.
- * There is no defined result if this param is null.
- */
- ACString getRelativeDescriptor(in nsILocalFile fromFile);
- /**
- * setRelativeDescriptor
- *
- * Initializes the file to the location relative to fromFile using
- * a string returned by getRelativeDescriptor.
- *
- * @param fromFile
- * the file to which the descriptor is relative
- * @param relative
- * the relative descriptor obtained from getRelativeDescriptor
- */
- void setRelativeDescriptor(in nsILocalFile fromFile, in ACString relativeDesc);
- };
|