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


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