我有以下代码行:
file normalize [string map {\\ /} $file]
字符串映射操作是使该行适用于包含反斜杠而不是前向的路径(如Windows中的情况)
对于$ file的某些值(让我们说" / path / to / my / file")我的输出类似于:
/path/to/"/path/to/my/file/"
这并非适用于所有路径,但我无法弄清楚导致它的原因。路径中没有符号链接。 有没有我做错的事情,或者我可以试试文件规范化的替代方案吗?
我的tcl版本是8.5
更新:
在进一步调查中,我发现string map
没有任何区别。 file normalize
本身的输出随附了所需文本之前的额外文本。此外,额外的文本似乎来自之前的代码运行。
更新2:这是因为file normalize
答案 0 :(得分:1)
路径很可能是反斜杠,不应该有它们。
% file normalize {"/path/to/some/file"}
/path/to/"/path/to/some/file"
% file normalize \"/path/to/some/file\"
/path/to/"/path/to/some/file"
也许某些路径名处理代码由于某种原因转义了特殊字符,并使路径处于错位状态。
我会尝试保持路径名原始,当需要更改显示或其他处理时,请先复制它。