![如何在运行时处理重复文件](https://linux22.com/image/1445741/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E5%A4%84%E7%90%86%E9%87%8D%E5%A4%8D%E6%96%87%E4%BB%B6.png)
我们有一个程序,可以解压文件并将解压后的文件存储在目录中。
解压时,解压后的文件可能与我们解压的另一个压缩文件具有相同的名称。
1.zip
test.log
test1.log
2.zip
test2.log
test1.log
我有一个循环来查看 *.zip 文件,然后在语句中解压缩该文件。
由于文件重复,因此失败。
我想避免替换该文件,我不想覆盖该文件。
您能否建议一些可以保留所有四个文件的技术?
答案1
简单的答案是将每个档案提取到单独的目录,从而为每个档案提供唯一的命名空间(例如 1/test.log、1/test1.log、2/test2.log、2/test1.log)。
如果它们必须出现在同一个位置,那么您可以将存档名称添加到每个文件名的前面(例如 1__test.log、1__test1.log、2__test2.log、2__test1.log)。但这肯定需要付出更多努力,而且如果存档名称包含您使用的分隔符序列(__
我示例中的部分),则仍有极小的可能性发生名称冲突。
答案2
只需使用 WINRAR 并勾选设置中的所有上下文菜单选项的框。
然后,您可以选择所有要解压的档案,右键单击它们并将它们拖到您希望它们所在的文件夹中,这将显示 WinRar 上下文菜单。
然后,您可以选择将它们全部提取到同一目录中,或者将每个文件提取到自己命名的目录中(以 zip 文件名命名)。
如果您希望它们全部放在同一目录中,请选择“在此处提取”。
WinRar 会自动检测重复的文件名并为您提供一系列选项。
只需选择“全部重命名”,每个后续重复项都会在其文件名后附加一个括号内的数字。例如(1),(2)等。