當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Dart Link.resolveSymbolicLinks用法及代碼示例


dart:io 庫中Link.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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。