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

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

Issue 23444037: dart:io | Change File.fullPath to FileSystemEntity.resolveSymbolicLinks. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Document resolution of link\.. on Windows. Created 7 years, 3 months 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) 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 /** 57 /**
58 * Updates the link. Returns a [:Future<Link>:] that completes with the 58 * Updates the link. Returns a [:Future<Link>:] that completes with the
59 * link when it has been updated. Calling [update] on a non-existing link 59 * link when it has been updated. Calling [update] on a non-existing link
60 * will complete its returned future with an exception. 60 * will complete its returned future with an exception.
61 * 61 *
62 * On the Windows platform, this will only work with directories, and the 62 * On the Windows platform, this will only work with directories, and the
63 * target directory must exist. 63 * target directory must exist.
64 */ 64 */
65 Future<Link> update(String target); 65 Future<Link> update(String target);
66 66
67 Future<String> resolveSymbolicLinks();
68
69 String resolveSymbolicLinksSync();
70
67 /** 71 /**
68 * Renames this link. Returns a `Future<Link>` that completes 72 * Renames this link. Returns a `Future<Link>` that completes
69 * with a [Link] instance for the renamed link. 73 * with a [Link] instance for the renamed link.
70 * 74 *
71 * If [newPath] identifies an existing link, that link is 75 * If [newPath] identifies an existing link, that link is
72 * replaced. If [newPath] identifies an existing file or directory, 76 * replaced. If [newPath] identifies an existing file or directory,
73 * the operation fails and the future completes with an exception. 77 * the operation fails and the future completes with an exception.
74 */ 78 */
75 Future<Link> rename(String newPath); 79 Future<Link> rename(String newPath);
76 80
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 } 217 }
214 218
215 void _deleteSync({bool recursive: false}) { 219 void _deleteSync({bool recursive: false}) {
216 if (recursive) { 220 if (recursive) {
217 return new Directory(path).deleteSync(recursive: true); 221 return new Directory(path).deleteSync(recursive: true);
218 } 222 }
219 var result = _File._deleteLinkNative(path); 223 var result = _File._deleteLinkNative(path);
220 throwIfError(result, "Cannot delete link", path); 224 throwIfError(result, "Cannot delete link", path);
221 } 225 }
222 226
227 Future<String> resolveSymbolicLinks() {
228 _ensureFileService();
229 List request = new List(2);
230 request[0] = _RESOLVE_SYMBOLIC_LINKS_REQUEST;
231 request[1] = path;
232 return _fileService.call(request).then((response) {
233 if (_isErrorResponse(response)) {
234 throw _exceptionFromResponse(
235 response, "Cannot resolve symbolic links", path);
236 }
237 return response;
238 });
239 }
240
241 String resolveSymbolicLinksSync() {
242 var result = _File._resolveSymbolicLinks(path);
243 if (result is OSError) {
244 throw new LinkException(
245 "Cannot resolve symbolic links", path, result);
246 }
247 return result;
248 }
249
223 Future<Link> rename(String newPath) { 250 Future<Link> rename(String newPath) {
224 _ensureFileService(); 251 _ensureFileService();
225 List request = new List(3); 252 List request = new List(3);
226 request[0] = _RENAME_LINK_REQUEST; 253 request[0] = _RENAME_LINK_REQUEST;
227 request[1] = path; 254 request[1] = path;
228 request[2] = newPath; 255 request[2] = newPath;
229 return _fileService.call(request).then((response) { 256 return _fileService.call(request).then((response) {
230 if (_isErrorResponse(response)) { 257 if (_isErrorResponse(response)) {
231 throw _exceptionFromResponse( 258 throw _exceptionFromResponse(
232 response, "Cannot rename link to '$newPath'", path); 259 response, "Cannot rename link to '$newPath'", path);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 if (path != null) { 340 if (path != null) {
314 sb.write(", path = $path"); 341 sb.write(", path = $path");
315 } 342 }
316 } 343 }
317 return sb.toString(); 344 return sb.toString();
318 } 345 }
319 final String message; 346 final String message;
320 final String path; 347 final String path;
321 final OSError osError; 348 final OSError osError;
322 } 349 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698