当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Link.resolveSymbolicLinksSync用法及代码示例


dart:io 库中Link.resolveSymbolicLinksSync 方法的用法介绍如下。

用法:

String resolveSymbolicLinksSync()
      override

解析文件系统对象相对于当前工作目录的路径。

解析路径上的所有符号链接并解析所有... 路径段。

resolveSymbolicLinksSync 使用操作系统的本机文件系统 API 来解析路径,在 linux 和 OS X 上使用 realpath 函数,在 Windows 上使用 GetFinalPathNameByHandle 函数。如果路径不指向现有文件系统对象,resolveSymbolicLinksSync 会抛出 FileSystemException

在 Windows 上,.. 段被解析 before 解析符号链接,而在其他平台上,符号链接在应用 .. 之前是 resolved to their target

为了确保所有平台上的相同行为在调用 resolveSymbolicLinksSync 之前解析 .. 段。一种方法是使用 Uri 类:

var path = Uri.parse('.').resolveUri(Uri.file(input)).toFilePath();
if (path == '') path = '.';
var resolved = File(path).resolveSymbolicLinksSync();
print(resolved);

因为 Uri.resolve 删除了 .. 段。这将导致 Windows 行为。

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 resolveSymbolicLinksSync method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。