Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: sdk/lib/io/directory.dart

Issue 11364097: Allow Directory.create to create all missing path components. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Reupload Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * [Directory] objects are used for working with directories. 6 * [Directory] objects are used for working with directories.
7 */ 7 */
8 abstract class Directory { 8 abstract class Directory {
9 /** 9 /**
10 * Creates a directory object. The path is either an absolute path, 10 * Creates a directory object. The path is either an absolute path,
(...skipping 20 matching lines...) Expand all
31 * a [:Future<bool>:] that completes with the result. 31 * a [:Future<bool>:] that completes with the result.
32 */ 32 */
33 Future<bool> exists(); 33 Future<bool> exists();
34 34
35 /** 35 /**
36 * Synchronously check whether a directory with this name already exists. 36 * Synchronously check whether a directory with this name already exists.
37 */ 37 */
38 bool existsSync(); 38 bool existsSync();
39 39
40 /** 40 /**
41 * Creates the directory with this name. If the directory already 41 * Creates the directory with this name.
42 * exists nothing is done. Returns a [:Future<Directory>:] that 42 *
43 * completes with this directory once it has been created. If the 43 * If [recursive] is false, only the last directory in the path is
44 * directory does not exist and cannot be created the future 44 * created. If [recursive] is true, all non-existing path components
45 * completes with an exception. 45 * are created. If the directory already exists nothing is done.
46 *
47 * Returns a [:Future<Directory>:] that completes with this
48 * directory once it has been created. If the directory cannot be
49 * created the future completes with an exception.
46 */ 50 */
47 Future<Directory> create(); 51 Future<Directory> create({recursive: false});
48 52
49 /** 53 /**
50 * Synchronously creates the directory with this name. If the 54 * Synchronously creates the directory with this name.
51 * directory already exists nothing is done. If the directory does 55 *
52 * not exist and cannot be created an exception is thrown. 56 * If [recursive] is false, only the last directory in the path is
57 * created. If [recursive] is true, all non-existing path components
58 * are created. If the directory already exists nothing is done.
59 *
60 * If the directory cannot be created an exception is thrown.
53 */ 61 */
54 void createSync(); 62 void createSync({recursive: false});
55 63
56 /** 64 /**
57 * Creates a temporary directory with a name based on the current 65 * Creates a temporary directory with a name based on the current
58 * path. This name and path is used as a template, and additional 66 * path. This name and path is used as a template, and additional
59 * characters are appended to it by the call to make a unique 67 * characters are appended to it by the call to make a unique
60 * directory name. If the path is the empty string, a default 68 * directory name. If the path is the empty string, a default
61 * system temp directory and name are used for the template. 69 * system temp directory and name are used for the template.
62 * 70 *
63 * Returns a [:Future<Directory>:] that completes with the newly 71 * Returns a [:Future<Directory>:] that completes with the newly
64 * created temporary directory. 72 * created temporary directory.
65 */ 73 */
66 Future<Directory> createTemp(); 74 Future<Directory> createTemp();
67 75
68 /** 76 /**
69 * Synchronously creates a temporary directory with a name based on the 77 * Synchronously creates a temporary directory with a name based on the
70 * current path. This name and path is used as a template, and additional 78 * current path. This name and path is used as a template, and additional
71 * characters are appended to it by the call to make a unique directory name. 79 * characters are appended to it by the call to make a unique directory name.
72 * If the path is the empty string, a default system temp directory and name 80 * If the path is the empty string, a default system temp directory and name
73 * are used for the template. Returns the newly created temporary directory. 81 * are used for the template. Returns the newly created temporary directory.
74 */ 82 */
75 Directory createTempSync(); 83 Directory createTempSync();
76 84
77 /** 85 /**
78 * Deletes the directory with this name. The directory must be 86 * Deletes the directory with this name.
79 * empty. Returns a [:Future<Directory>:] that completes with 87 *
80 * this directory when the deletion is done. 88 * If [recursive] is false, the directory must be empty.
89 *
90 * If [recursive] is true, this directory and all sub-directories
91 * and files in the directories are deleted.
92 *
93 * Returns a [:Future<Directory>:] that completes with this
94 * directory when the deletion is done. If the directory cannot be
95 * deleted, the future completes with an exception.
81 */ 96 */
82 Future<Directory> delete(); 97 Future<Directory> delete({recursive: false});
83 98
84 /** 99 /**
85 * Synchronously deletes the directory with this name. The directory 100 * Synchronously deletes the directory with this name.
86 * must be empty. Throws an exception if the directory cannot be 101 *
87 * deleted. 102 * If [recursive] is false, the directory must be empty.
103 *
104 * If [recursive] is true, this directory and all sub-directories
105 * and files in the directories are deleted.
106 *
107 * Throws an exception if the directory cannot be deleted.
88 */ 108 */
89 void deleteSync(); 109 void deleteSync({recursive: false});
90
91 /**
92 * Deletes this directory and all sub-directories and files in the
93 * directories. Returns a [:Future<Directory>:] that completes with
94 * this directory when the deletion is done.
95 */
96 Future<Directory> deleteRecursively();
97
98 /**
99 * Synchronously deletes this directory and all sub-directories and
100 * files in the directories. Throws an exception if the directory
101 * cannot be deleted.
102 */
103 void deleteRecursivelySync();
104 110
105 /** 111 /**
106 * Rename this directory. Returns a [:Future<Directory>:] that completes 112 * Rename this directory. Returns a [:Future<Directory>:] that completes
107 * with a [Directory] instance for the renamed directory. 113 * with a [Directory] instance for the renamed directory.
108 * 114 *
109 * If newPath identifies an existing directory, that directory is 115 * If newPath identifies an existing directory, that directory is
110 * replaced. If newPath identifies an existing file the operation 116 * replaced. If newPath identifies an existing file the operation
111 * fails and the future completes with an exception. 117 * fails and the future completes with an exception.
112 */ 118 */
113 Future<Directory> rename(String newPath); 119 Future<Directory> rename(String newPath);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 if (path != null) { 207 if (path != null) {
202 sb.add(", path = $path"); 208 sb.add(", path = $path");
203 } 209 }
204 } 210 }
205 return sb.toString(); 211 return sb.toString();
206 } 212 }
207 final String message; 213 final String message;
208 final String path; 214 final String path;
209 final OSError osError; 215 final OSError osError;
210 } 216 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698