dart:io
库中Directory.resolveSymbolicLinks
方法的用法介绍如下。
用法:
Future<String> resolveSymbolicLinks()
override
解析文件系统对象相对于当前工作目录的路径。
解析路径上的所有符号链接并解析所有..
和.
路径段。
resolveSymbolicLinks 使用操作系统的本机文件系统 API 来解析路径,在 Linux 和 OS X 上使用 realpath
函数,在 Windows 上使用 GetFinalPathNameByHandle
函数。如果路径不指向现有文件系统对象,resolveSymbolicLinks
会抛出 FileSystemException
。
在 Windows 上,..
段被解析 before
解析符号链接,而在其他平台上,符号链接在应用 ..
之前是 resolved to their
target
。
为了确保所有平台上的相同行为在调用 resolveSymbolicLinks
之前解析 ..
段。一种方法是使用 Uri 类:
var path = Uri.parse('.').resolveUri(Uri.file(input)).toFilePath();
if (path == '') path = '.';
var resolved = await File(path).resolveSymbolicLinks();
print(resolved);
因为 Uri.resolve
删除了 ..
段。这将导致 Windows 行为。
相关用法
- Dart Directory.resolveSymbolicLinksSync用法及代码示例
- Dart Directory用法及代码示例
- Dart DivElement用法及代码示例
- Dart DateTime.toUtc用法及代码示例
- Dart DateTime.minute用法及代码示例
- Dart DateTime.toIso8601String用法及代码示例
- Dart DomStringList.first用法及代码示例
- Dart DateTime.fromMillisecondsSinceEpoch用法及代码示例
- Dart DateTime.add用法及代码示例
- Dart DateTime.isAfter用法及代码示例
- Dart DoubleLinkedQueue.from用法及代码示例
- Dart DateTime用法及代码示例
- Dart DateTime.weekday用法及代码示例
- Dart DomRectList.length用法及代码示例
- Dart DateTime.isAtSameMomentAs用法及代码示例
- Dart DomRectList.first用法及代码示例
- Dart Duration.inDays用法及代码示例
- Dart DomStringList.elementAt用法及代码示例
- Dart Duration.inMicroseconds用法及代码示例
- Dart DateTime.hour用法及代码示例
- Dart DynamicLibraryExtension.lookupFunction用法及代码示例
- Dart DateTime.isBefore用法及代码示例
- Dart DateTime.utc用法及代码示例
- Dart DeferredLibrary用法及代码示例
- Dart DoubleLinkedQueue.isEmpty用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 resolveSymbolicLinks method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。