OLD | NEW |
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 /// Helper functionality to make working with IO easier. | 5 /// Helper functionality to make working with IO easier. |
6 library io; | 6 library io; |
7 | 7 |
8 import 'dart:async'; | 8 import 'dart:async'; |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 import 'dart:isolate'; | 10 import 'dart:isolate'; |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 if (path == '.') return new Future.immediate(new Directory('.')); | 182 if (path == '.') return new Future.immediate(new Directory('.')); |
183 | 183 |
184 return dirExists(path).then((exists) { | 184 return dirExists(path).then((exists) { |
185 if (exists) { | 185 if (exists) { |
186 log.fine("Directory $path already exists."); | 186 log.fine("Directory $path already exists."); |
187 return new Future.immediate(new Directory(path)); | 187 return new Future.immediate(new Directory(path)); |
188 } | 188 } |
189 | 189 |
190 return ensureDir(dirname(path)).then((_) { | 190 return ensureDir(dirname(path)).then((_) { |
191 return createDir(path).catchError((asyncError) { | 191 return createDir(path).catchError((asyncError) { |
192 var error = getRealError(asyncError); | 192 if (asyncError.error is! DirectoryIOException) throw asyncError; |
193 if (error is! DirectoryIOException) throw asyncError; | |
194 // Error 17 means the directory already exists (or 183 on Windows). | 193 // Error 17 means the directory already exists (or 183 on Windows). |
195 if (error.osError.errorCode == 17 || error.osError.errorCode == 183) { | 194 if (asyncError.error.osError.errorCode == 17 || |
| 195 asyncError.error.osError.errorCode == 183) { |
196 log.fine("Got 'already exists' error when creating directory."); | 196 log.fine("Got 'already exists' error when creating directory."); |
197 return _getDirectory(path); | 197 return _getDirectory(path); |
198 } | 198 } |
199 | 199 |
200 throw asyncError; | 200 throw asyncError; |
201 }); | 201 }); |
202 }); | 202 }); |
203 }); | 203 }); |
204 } | 204 } |
205 | 205 |
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1028 Directory _getDirectory(entry) { | 1028 Directory _getDirectory(entry) { |
1029 if (entry is Directory) return entry; | 1029 if (entry is Directory) return entry; |
1030 return new Directory(entry); | 1030 return new Directory(entry); |
1031 } | 1031 } |
1032 | 1032 |
1033 /// Gets a [Uri] for [uri], which can either already be one, or be a [String]. | 1033 /// Gets a [Uri] for [uri], which can either already be one, or be a [String]. |
1034 Uri _getUri(uri) { | 1034 Uri _getUri(uri) { |
1035 if (uri is Uri) return uri; | 1035 if (uri is Uri) return uri; |
1036 return new Uri.fromString(uri); | 1036 return new Uri.fromString(uri); |
1037 } | 1037 } |
OLD | NEW |