5 个稳定版本
1.0.5 | 2024 年 8 月 4 日 |
---|---|
1.0.4 | 2023 年 4 月 19 日 |
1.0.3 | 2022 年 10 月 6 日 |
1.0.2 | 2021 年 6 月 8 日 |
0.1.0 |
|
#13 in 文件系统
1,821,202 每月下载量
用于 2,196 个 Crates (258 直接)
15KB
252 行
Dunce (de-UNC)
在 Windows 中,常规路径 (C:\foo
) 被所有程序支持,但为了与 MS-DOS 的向后兼容性,有许多奇特的限制。还有 Windows NT UNC 路径 (\\?\C:\foo
),它们更健壮,有更少的陷阱,但很少被 Windows 程序支持——即使是微软自己的也不例外!
此 crate 在可能的情况下将 Windows UNC 路径转换为 MS-DOS 兼容的格式,但当无法以更简单的方式明确表达时,将保留 UNC 路径。这允许旧程序访问它们可以访问的所有路径,并且不会破坏任何 UNC 感知程序的路径。
例如,\\?\C:\Windows
将转换为 C:\Windows
,但 \\?\C:\COM
将保持不变,因为它包含一个保留的文件名。
Rust 中最糟糕的 UNC 违规者是 fs::canonicalize()
函数。此 crate 提供了一个直接替换,返回您期望的路径。
在非 Windows 平台上,这些函数将路径保持不变,因此可以在所有平台上无条件地使用它们。
此 crate 对 UNC 路径的处理比无条件删除 \\
前缀更安全,因为天真地删除 UNC 路径并更改主机名会变为相对目录路径。还有其他规范化规则、特殊字符和长度限制,这些都可能改变路径的含义。
解析基于 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx。