我有一个 ZIP 文件,其中只有两个文件。它们分别名为AUSWRTX1APE1.TXT
(1)和AUSWRT~1.TXT
(2)。
我的问题是,我无法将两个文件提取到同一个(新的和空的)文件夹中。Windows 抱怨文件名已经存在
您可以重现此行为:创建一个新的文本文件并将其命名为AUSWRTX1APE1.TXT
。然后,在同一位置创建第二个文本文件并尝试将其命名为AUSWRT~1.TXT
。Windows 不会这样做。
波浪符号和旧的 Windows 8.3 短名称是我的问题吗?
如果有人有更精确的标题,请随意重命名我的问题
答案1
是的,旧的 DOS 短名称是问题的根源。出于兼容性原因,NTFS 除了存储长文件名外,还存储一个短名称。
您可以在解压之前将 zip 文件中的AUSWRT~1.TXT
重命名为,或者您可以更改文件名的开头() 。AUSWRT~2.TXT
AUSWRT
AUSWRTX1APE1.TXT
另一种可能性是禁用 NTFS 兼容模式,但我不推荐这样做。
编辑以回复评论:
据我所知,~ 继承自与 FAT16 的反向兼容性,无法使用长度超过“xxxxxxxx.xxx”(12)个字符的文件名。在 FAT32 上创建较长的文件名时,它在 MSDOS 中显示为 xxxxxx~1.xxx,其中 ~1 是 ~ + 文件名中前 6 个字符的出现次数
建立短名称的规则非常复杂。请记住,它们取决于文件扩展名,并且这些规则在基于 DOS 的旧 Windows 和基于 NT 的 Windows 之间甚至有所不同。