我看到这篇文章有一个很好的方法
使用makecab压缩文件夹。上述脚本的一个问题是它无法处理长文件名(具有长扩展名)。 Fox的例子,如果我有一个带文件名的文件,somelongfilename.extension,在我压缩和解压缩之后,文件名将是SOMELO~1.EXT。任何人都可以指导我修复它的方法吗?
答案 0 :(得分:0)
我最近做过类似的事情。但我使用一个名为DDFGenerator的外部工具。它是免费的,小的,它可以正确处理长文件名。
要使用makecab.exe压缩结构化文件夹和文件,必须使用DDF文件。我没有使用你引用的答案中提到的批处理脚本,而是将DDFGenerator用于同一目标。
说,你想要“压缩”的文件夹位于C:\ MyFolder \ MyData,使用此命令在C:\ MyFolder生成一个名为“solution.ddf”的DDF文件:
DDFGenerator "C:\MyFolder"
请注意,DDFGenerator.exe会在您提供的文件夹下“迭代”文件,因此要压缩C:\ MyFolder \ MyData,您应该将“C:\ MyFolder”传递给它并确保MyData是C中的唯一项目: \ MyFolder中。
生成solution.ddf后,需要进行小的调整。只需使用您喜欢的任何文本编辑器打开“solution.ddf”并进行以下更改:
替换这两行(在一开始):
.Set DiskDirectoryTemplate=CDROM
.Set CompressionType=MSZIP
成为:
.Set CabinetName1={YourCabName}.cab
.Set CompressionType=LZX
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
(将{YourCabName}替换为符合您需要的任何内容) 这些变化确保不会分裂并具有更好的压缩比。
然后,在C:\ MyFolder上运行makecab命令来构建cab:
makecab.exe /F solution.ddf
完成后,{YourCabName} .cab将位于C:\ MyFolder \ disk1下。只需将其删除并删除已生成的其他文件。
要在当前路径“解压缩”驾驶室,请使用命令:
expand {YourCabName}.cab /F:* .