nsILocalFile.idl 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3. * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. * http://www.mozilla.org/MPL/
  9. *
  10. * Software distributed under the License is distributed on an "AS IS" basis,
  11. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12. * for the specific language governing rights and limitations under the
  13. * License.
  14. *
  15. * The Original Code is Mozilla Communicator client code, released
  16. * March 31, 1998.
  17. *
  18. * The Initial Developer of the Original Code is
  19. * Netscape Communications Corporation.
  20. * Portions created by the Initial Developer are Copyright (C) 1998-1999
  21. * the Initial Developer. All Rights Reserved.
  22. *
  23. * Contributor(s):
  24. * Doug Turner <[email protected]>
  25. * Darin Fisher <[email protected]>
  26. *
  27. * Alternatively, the contents of this file may be used under the terms of
  28. * either of the GNU General Public License Version 2 or later (the "GPL"),
  29. * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  30. * in which case the provisions of the GPL or the LGPL are applicable instead
  31. * of those above. If you wish to allow use of your version of this file only
  32. * under the terms of either the GPL or the LGPL, and not to allow others to
  33. * use your version of this file under the terms of the MPL, indicate your
  34. * decision by deleting the provisions above and replace them with the notice
  35. * and other provisions required by the GPL or the LGPL. If you do not delete
  36. * the provisions above, a recipient may use your version of this file under
  37. * the terms of any one of the MPL, the GPL or the LGPL.
  38. *
  39. * ***** END LICENSE BLOCK ***** */
  40. #include "nsIFile.idl"
  41. %{C++
  42. #include "prio.h"
  43. #include "prlink.h"
  44. #include <stdio.h>
  45. %}
  46. [ptr] native PRFileDescStar(PRFileDesc);
  47. [ptr] native PRLibraryStar(PRLibrary);
  48. [ptr] native FILE(FILE);
  49. /**
  50. * This interface adds methods to nsIFile that are particular to a file
  51. * that is accessible via the local file system.
  52. *
  53. * It follows the same string conventions as nsIFile.
  54. *
  55. * @status FROZEN
  56. */
  57. [scriptable, uuid(aa610f20-a889-11d3-8c81-000064657374)]
  58. interface nsILocalFile : nsIFile
  59. {
  60. /**
  61. * initWith[Native]Path
  62. *
  63. * This function will initialize the nsILocalFile object. Any
  64. * internal state information will be reset.
  65. *
  66. * NOTE: This function has a known bug on the macintosh and
  67. * other OSes which do not represent file locations as paths.
  68. * If you do use this function, be very aware of this problem!
  69. *
  70. * @param filePath
  71. * A string which specifies a full file path to a
  72. * location. Relative paths will be treated as an
  73. * error (NS_ERROR_FILE_UNRECOGNIZED_PATH). For
  74. * initWithNativePath, the filePath must be in the native
  75. * filesystem charset.
  76. */
  77. void initWithPath(in AString filePath);
  78. [noscript] void initWithNativePath(in ACString filePath);
  79. /**
  80. * initWithFile
  81. *
  82. * Initialize this object with another file
  83. *
  84. * @param aFile
  85. * the file this becomes equivalent to
  86. */
  87. void initWithFile(in nsILocalFile aFile);
  88. /**
  89. * followLinks
  90. *
  91. * This attribute will determine if the nsLocalFile will auto
  92. * resolve symbolic links. By default, this value will be false
  93. * on all non unix systems. On unix, this attribute is effectively
  94. * a noop.
  95. */
  96. attribute PRBool followLinks;
  97. [noscript] PRFileDescStar openNSPRFileDesc(in long flags, in long mode);
  98. [noscript] FILE openANSIFileDesc(in string mode);
  99. [noscript] PRLibraryStar load();
  100. readonly attribute PRInt64 diskSpaceAvailable;
  101. /**
  102. * appendRelative[Native]Path
  103. *
  104. * Append a relative path to the current path of the nsILocalFile object.
  105. *
  106. * @param relativeFilePath
  107. * relativeFilePath is a native relative path. For security reasons,
  108. * this cannot contain .. or cannot start with a directory separator.
  109. * For the |appendRelativeNativePath| method, the relativeFilePath
  110. * must be in the native filesystem charset.
  111. */
  112. void appendRelativePath(in AString relativeFilePath);
  113. [noscript] void appendRelativeNativePath(in ACString relativeFilePath);
  114. /**
  115. * Accessor to a null terminated string which will specify
  116. * the file in a persistent manner for disk storage.
  117. *
  118. * The character set of this attribute is undefined. DO NOT TRY TO
  119. * INTERPRET IT AS HUMAN READABLE TEXT!
  120. */
  121. attribute ACString persistentDescriptor;
  122. /**
  123. * reveal
  124. *
  125. * Ask the operating system to open the folder which contains
  126. * this file or folder. This routine only works on platforms which
  127. * support the ability to open a folder...
  128. */
  129. void reveal();
  130. /**
  131. * launch
  132. *
  133. * Ask the operating system to attempt to open the file.
  134. * this really just simulates "double clicking" the file on your platform.
  135. * This routine only works on platforms which support this functionality.
  136. */
  137. void launch();
  138. /**
  139. * getRelativeDescriptor
  140. *
  141. * Returns a relative file path in an opaque, XP format. It is therefore
  142. * not a native path.
  143. *
  144. * The character set of the string returned from this function is
  145. * undefined. DO NOT TRY TO INTERPRET IT AS HUMAN READABLE TEXT!
  146. *
  147. * @param fromFile
  148. * the file from which the descriptor is relative.
  149. * There is no defined result if this param is null.
  150. */
  151. ACString getRelativeDescriptor(in nsILocalFile fromFile);
  152. /**
  153. * setRelativeDescriptor
  154. *
  155. * Initializes the file to the location relative to fromFile using
  156. * a string returned by getRelativeDescriptor.
  157. *
  158. * @param fromFile
  159. * the file to which the descriptor is relative
  160. * @param relative
  161. * the relative descriptor obtained from getRelativeDescriptor
  162. */
  163. void setRelativeDescriptor(in nsILocalFile fromFile, in ACString relativeDesc);
  164. };