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


Dart Directory.resolveSymbolicLinks用法及代码示例


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.dev大神的英文原创作品 resolveSymbolicLinks method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。