/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * The contents of this file are subject to the Netscape 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/NPL/ * * 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 Netscape are * Copyright (C) 1998-1999 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Doug Turner */ #include "nsIFile.idl" %{C++ #include "prio.h" #include "prlink.h" #include %} [ptr] native PRFileDescStar(PRFileDesc); [ptr] native PRLibraryStar(PRLibrary); [ptr] native FILE(FILE); [scriptable, uuid(aa610f20-a889-11d3-8c81-000064657374)] interface nsILocalFile : nsIFile { /** * initWithPath * * 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 pathes. If you do use this function, be very * aware of this problem as bugs. * * @param filePath * A string which specifies a full file path to a * location. Relative paths will be treated as an * error (NS_ERROR_FILE_UNRECONGNIZED_PATH). This * path must in native. */ void initWithPath([const] in string filePath); [noscript] PRFileDescStar openNSPRFileDesc(in long flags, in long mode); [noscript] FILE openANSIFileDesc(in string mode); [noscript] PRLibraryStar load(); readonly attribute PRInt64 diskSpaceAvailable; // maybe we should put this somewhere else. }; %{C++ #define NS_LOCAL_FILE_PROGID "component://mozilla/file/local" #define NS_LOCAL_FILE_CLASSNAME "Local File Specification" extern "C" NS_EXPORT nsresult NS_NewLocalFile(const char* path, nsILocalFile* *result); %}