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


Dart Uri.toFilePath用法及代碼示例


dart:core 庫中Uri.toFilePath 方法的用法介紹如下。

用法:

String toFilePath(
   {bool? windows}   
)

從文件 URI 創建文件路徑。

返回的路徑具有 Windows 或非 Windows 語義。

對於非 Windows 語義,斜杠 ("/") 用於分隔路徑段。

對於 Windows 語義,反斜杠 ("\") 分隔符用於分隔路徑段。

如果 URI 是絕對的,則路徑以路徑分隔符開頭,除非使用 Windows 語義並且第一個路徑段是驅動器號。使用 Windows 語義時,uri 中的主機組件被解釋為文件服務器,並返回 UNC 路徑。

是否使用 Windows 或非 Windows 語義的默認值取決於 Dart 運行的平台。在獨立虛擬機中運行時,虛擬機會根據操作係統檢測到這一點。在瀏覽器中運行時,始終使用非 Windows 語義。

要覆蓋自動檢測要使用的語義,請傳遞 windows 的值。傳遞true 將使用Windows 語義,傳遞false 將使用非Windows 語義。

如果 URI 以斜杠結尾(即最後一個路徑組件為空),則返回的文件路徑也將以斜杠結尾。

使用 Windows 語義,以驅動器號開頭的 URI 不能與指定驅動器上的當前驅動器相關。也就是說,對於 URI file:///c:abc 調用 toFilePath 將作為路徑段在 Windows 上不能包含冒號而拋出。

使用非 Windows 語義的示例(導致在注釋中調用 toFilePath):

Uri.parse("xxx/yyy");  // xxx/yyy
Uri.parse("xxx/yyy/");  // xxx/yyy/
Uri.parse("file:///xxx/yyy");  // /xxx/yyy
Uri.parse("file:///xxx/yyy/");  // /xxx/yyy/
Uri.parse("file:///C:");  // /C:
Uri.parse("file:///C:a");  // /C:a

使用 Windows 語義的示例(在注釋中生成 URI):

Uri.parse("xxx/yyy");  // xxx\yyy
Uri.parse("xxx/yyy/");  // xxx\yyy\
Uri.parse("file:///xxx/yyy");  // \xxx\yyy
Uri.parse("file:///xxx/yyy/");  // \xxx\yyy\
Uri.parse("file:///C:/xxx/yyy");  // C:\xxx\yyy
Uri.parse("file:C:xxx/yyy");  // Throws as a path segment
                              // cannot contain colon on Windows.
Uri.parse("file://server/share/file");  // \\server\share\file

如果 URI 不是文件 URI,則調用它會拋出 UnsupportedError

如果 URI 無法轉換為文件路徑,則調用此函數會引發 UnsupportedError

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 toFilePath method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。