You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows短路径转换相关疑问:转换机制及还原方法咨询

Windows短路径转换相关疑问:转换机制及还原方法咨询

兄弟,你碰到的这个是Windows里的8.3短路径格式,算是老DOS时代遗留下来的兼容机制啦!当年DOS只能支持最多8个字符的文件名加3个字符的扩展名,所以Windows为了让老软件也能识别长文件名,就自动给它们生成了对应的短路径。

一、怎么把短路径还原成正常长路径?

如果你是在AutoHotkey里处理这个问题,最直接的方式是调用Windows系统的API函数来转换,给你一段现成的AHK代码:

GetLongPath(ShortPath) {
    VarSetCapacity(LongPath, 260*2, 0)
    DllCall("kernel32.dll\GetLongPathNameW", "Str", ShortPath, "Str", LongPath, "UInt", 260)
    return LongPath
}

把你收到的短路径参数传给这个函数,就能直接得到对应的长路径啦。

要是不想写代码,用系统自带的命令行工具也能搞定:

  • 打开CMD,输入dir /x,就能看到当前目录下所有文件/文件夹的短路径和长路径对应关系;
  • 直接针对单个短路径转换的话,输入for %f in ("C:\LONGER~3") do @echo %~ff,把引号里的短路径换成你要转换的,回车就能输出长路径。

二、这种短路径的转换规则是什么?

Windows会自动给以下类型的文件/文件夹生成短路径:

  • 文件名包含空格、非ASCII字符(比如你例子里的俄文);
  • 文件名长度超过8个字符,或者扩展名超过3个字符。

生成规则大概是这样的:

  1. 取长文件名的前6个有效字符(如果是中文/非英文,会转换成对应的系统内部编码短码);
  2. 后面加上~和一个数字(数字从1开始,如果有重名的短路径,数字会递增);
  3. 扩展名部分取原扩展名的前3个字符(如果原文件有扩展名的话)。

比如你提到的C:\Longer than (3),前6个字符是LONGER,所以生成LONGER~3;而俄文的C:\Новый текстовый документ.txt,系统把俄文字符转换成了内部短码,就变成了700C~1.TXT。

另外补充一句:这个短路径机制是Windows默认开启的,虽然现在大部分新软件都支持长路径,但有些老程序还是依赖它,所以一般不建议关闭这个功能哦。

备注:内容来源于stack exchange,提问作者Avtem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:13:04