背景
编写一个程序来监视目录和子目录,并在创建、更新、编辑路径中的文件时提醒用户。代码在github上共享。
我是 Rust 新手(大约 1 周的经验)。
使输出路径易于使用
我希望用户能够轻松复制输出路径(见下图)并复制/粘贴它以供使用。
当我在 Linux 上运行该程序时,它与目录分隔符(/ - 正斜杠)配合得很好,并且用户可以轻松复制路径并使用它。
问题:Windows 平台使用反斜杠
问题在于,在 Windows 平台上,路径是用反斜杠(也是转义字符)分隔的。
双反斜杠
当程序在 Windows 上输出路径时,它始终显示双反斜杠,并且该路径不易复制。
这是输出的快照:
作为示例,我使用以下输出:
println!("{:?}", Path::new("c:\\windows\\"));
Run Code Online (Sandbox Code Playgroud)
输出来自 Path::new() 方法本身,但它始终输出带有双反斜杠的路径字符串。
您能帮我找到一种更好的方法来格式化输出,使其具有像正常路径一样的单个反斜杠(不包括转义反斜杠)吗?
编辑
有人提到尝试原始字符串输入,所以我尝试了以下操作:
println!("{:?}", Path::new(r"c:\windows\"));
Run Code Online (Sandbox Code Playgroud)
但是,Path::new 方法仍然输出双反斜杠。
Skg*_*and 11
问题是您正在使用Debug
格式来打印路径,这会导致需要在字符串文字中转义的字符在输出中转义。
相反,您应该使用正常的Display
格式,但由于 Path 不直接实现,Display
您需要在路径上调用 display 来显示它。
println!("{}", Path::new("c:\\windows\\").display());
Run Code Online (Sandbox Code Playgroud)
请注意,Path::display
如果路径包含非 unicode 数据,这并不是无损的。
归档时间: |
|
查看次数: |
2872 次 |
最近记录: |