Index: sdk/lib/io/directory_impl.dart |
diff --git a/sdk/lib/io/directory_impl.dart b/sdk/lib/io/directory_impl.dart |
index f54a6413c1e938fc9b2d7ef8b85038f9caff18d8..e5293f6d2c0892780055e8908cde1155729ac87d 100644 |
--- a/sdk/lib/io/directory_impl.dart |
+++ b/sdk/lib/io/directory_impl.dart |
@@ -13,6 +13,7 @@ class _Directory extends FileSystemEntity implements Directory { |
static const LIST_NEXT_REQUEST = 5; |
static const LIST_STOP_REQUEST = 6; |
static const RENAME_REQUEST = 7; |
+ static const RESOLVE_SYMBOLIC_LINKS_REQUEST = 8; |
final String path; |
SendPort _directoryService; |
@@ -204,6 +205,29 @@ class _Directory extends FileSystemEntity implements Directory { |
} |
} |
+ Future<String> resolveSymbolicLinks() { |
+ _ensureDirectoryService(); |
+ List request = new List(2); |
+ request[0] = RESOLVE_SYMBOLIC_LINKS_REQUEST; |
+ request[1] = path; |
+ return _directoryService.call(request).then((response) { |
+ if (_isErrorResponse(response)) { |
+ throw _exceptionOrErrorFromResponse(response, |
+ "Cannot resolve symbolic links"); |
+ } |
+ return response; |
+ }); |
+ } |
+ |
+ String resolveSymbolicLinksSync() { |
+ var result = _File._resolveSymbolicLinks(path); |
+ if (result is OSError) { |
+ throw new DirectoryException( |
+ "Cannot resolve symbolic links", path, result); |
+ } |
+ return result; |
+ } |
+ |
Future<Directory> rename(String newPath) { |
_ensureDirectoryService(); |
List request = new List(3); |