| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * [Link] objects are references to filesystem links. | 8 * [Link] objects are references to filesystem links. |
| 9 * | 9 * |
| 10 */ | 10 */ |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 Link get absolute => new Link(_absolutePath); | 142 Link get absolute => new Link(_absolutePath); |
| 143 | 143 |
| 144 Future<FileStat> stat() => FileStat.stat(path); | 144 Future<FileStat> stat() => FileStat.stat(path); |
| 145 | 145 |
| 146 FileStat statSync() => FileStat.statSync(path); | 146 FileStat statSync() => FileStat.statSync(path); |
| 147 | 147 |
| 148 Future<Link> create(String target) { | 148 Future<Link> create(String target) { |
| 149 if (Platform.operatingSystem == 'windows') { | 149 if (Platform.operatingSystem == 'windows') { |
| 150 target = _makeWindowsLinkTarget(target); | 150 target = _makeWindowsLinkTarget(target); |
| 151 } | 151 } |
| 152 return IOService.dispatch(FILE_CREATE_LINK, [path, target]) | 152 return _IOService.dispatch(_FILE_CREATE_LINK, [path, target]) |
| 153 .then((response) { | 153 .then((response) { |
| 154 if (_isErrorResponse(response)) { | 154 if (_isErrorResponse(response)) { |
| 155 throw _exceptionFromResponse( | 155 throw _exceptionFromResponse( |
| 156 response, "Cannot create link to target '$target'", path); | 156 response, "Cannot create link to target '$target'", path); |
| 157 } | 157 } |
| 158 return this; | 158 return this; |
| 159 }); | 159 }); |
| 160 } | 160 } |
| 161 | 161 |
| 162 void createSync(String target) { | 162 void createSync(String target) { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 // Atomically changing a link can be done by creating the new link, with | 196 // Atomically changing a link can be done by creating the new link, with |
| 197 // a different name, and using the rename() posix call to move it to | 197 // a different name, and using the rename() posix call to move it to |
| 198 // the old name atomically. | 198 // the old name atomically. |
| 199 return delete().then((_) => create(target)); | 199 return delete().then((_) => create(target)); |
| 200 } | 200 } |
| 201 | 201 |
| 202 Future<Link> _delete({bool recursive: false}) { | 202 Future<Link> _delete({bool recursive: false}) { |
| 203 if (recursive) { | 203 if (recursive) { |
| 204 return new Directory(path).delete(recursive: true).then((_) => this); | 204 return new Directory(path).delete(recursive: true).then((_) => this); |
| 205 } | 205 } |
| 206 return IOService.dispatch(FILE_DELETE_LINK, [path]).then((response) { | 206 return _IOService.dispatch(_FILE_DELETE_LINK, [path]).then((response) { |
| 207 if (_isErrorResponse(response)) { | 207 if (_isErrorResponse(response)) { |
| 208 throw _exceptionFromResponse(response, "Cannot delete link", path); | 208 throw _exceptionFromResponse(response, "Cannot delete link", path); |
| 209 } | 209 } |
| 210 return this; | 210 return this; |
| 211 }); | 211 }); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void _deleteSync({bool recursive: false}) { | 214 void _deleteSync({bool recursive: false}) { |
| 215 if (recursive) { | 215 if (recursive) { |
| 216 return new Directory(path).deleteSync(recursive: true); | 216 return new Directory(path).deleteSync(recursive: true); |
| 217 } | 217 } |
| 218 var result = _File._deleteLinkNative(path); | 218 var result = _File._deleteLinkNative(path); |
| 219 throwIfError(result, "Cannot delete link", path); | 219 throwIfError(result, "Cannot delete link", path); |
| 220 } | 220 } |
| 221 | 221 |
| 222 Future<Link> rename(String newPath) { | 222 Future<Link> rename(String newPath) { |
| 223 return IOService.dispatch(FILE_RENAME_LINK, [path, newPath]) | 223 return _IOService.dispatch(_FILE_RENAME_LINK, [path, newPath]) |
| 224 .then((response) { | 224 .then((response) { |
| 225 if (_isErrorResponse(response)) { | 225 if (_isErrorResponse(response)) { |
| 226 throw _exceptionFromResponse( | 226 throw _exceptionFromResponse( |
| 227 response, "Cannot rename link to '$newPath'", path); | 227 response, "Cannot rename link to '$newPath'", path); |
| 228 } | 228 } |
| 229 return new Link(newPath); | 229 return new Link(newPath); |
| 230 }); | 230 }); |
| 231 } | 231 } |
| 232 | 232 |
| 233 Link renameSync(String newPath) { | 233 Link renameSync(String newPath) { |
| 234 var result = _File._renameLink(path, newPath); | 234 var result = _File._renameLink(path, newPath); |
| 235 throwIfError(result, "Cannot rename link '$path' to '$newPath'"); | 235 throwIfError(result, "Cannot rename link '$path' to '$newPath'"); |
| 236 return new Link(newPath); | 236 return new Link(newPath); |
| 237 } | 237 } |
| 238 | 238 |
| 239 Future<String> target() { | 239 Future<String> target() { |
| 240 return IOService.dispatch(FILE_LINK_TARGET, [path]).then((response) { | 240 return _IOService.dispatch(_FILE_LINK_TARGET, [path]).then((response) { |
| 241 if (_isErrorResponse(response)) { | 241 if (_isErrorResponse(response)) { |
| 242 throw _exceptionFromResponse( | 242 throw _exceptionFromResponse( |
| 243 response, "Cannot get target of link", path); | 243 response, "Cannot get target of link", path); |
| 244 } | 244 } |
| 245 return response; | 245 return response; |
| 246 }); | 246 }); |
| 247 } | 247 } |
| 248 | 248 |
| 249 String targetSync() { | 249 String targetSync() { |
| 250 var result = _File._linkTarget(path); | 250 var result = _File._linkTarget(path); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 if (path != null) { | 298 if (path != null) { |
| 299 sb.write(", path = $path"); | 299 sb.write(", path = $path"); |
| 300 } | 300 } |
| 301 } | 301 } |
| 302 return sb.toString(); | 302 return sb.toString(); |
| 303 } | 303 } |
| 304 final String message; | 304 final String message; |
| 305 final String path; | 305 final String path; |
| 306 final OSError osError; | 306 final OSError osError; |
| 307 } | 307 } |
| OLD | NEW |