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

Unified Diff: sdk/lib/io/directory_impl.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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698