【发布时间】:2018-11-26 09:20:16
【问题描述】:
我想将"C:\Program Files\x\y\z" 转换为"C:\%ProgramFiles%\x\y\z 或"C:\Progra~1\x\y\z"(DOS 短路径)。这个 C#.Net 怎么做?
要将长路径转换为 DOS 短路径,我尝试了解决方案 posted here,但是在我的 Windows 10 上它不起作用。有什么提示吗?
更新 - 请注意,路径可能存在也可能不存在于磁盘上。我正在寻找一种可以将任意路径字符串转换为上述格式的解决方案。使用 GetShortPathName(...) 的解决方案仅在 LongPath 物理存在于磁盘上时才有效。
【问题讨论】:
-
我不认为你想要
C:\%ProgramFiles%\x\y\z因为 %ProgramFiles% 扩展到例如c:\program files 意味着你最终会得到c:\c:\program files\x\y\z的路径。你是说%ProgramFiles%\x\y\z吗? -
是的。这是错字。我想要和你提到的一样的行为。