我有大约 12 GB 的图像图块,由大约 200 万个文件组成。我想将它们压缩起来,以便更轻松地将它们传输到服务器。我只打算将文件存储在 zip 文件中以便传输,不进行压缩。Helm 存在于 Web 服务器上,可以处理解压文件。
我想一次性让一个程序指向所有这些文件,并将它们压缩成每个约 1 GB 的文件,但每个 zip 文件都需要独立于其他文件。
我安装了 7-zip,支持跨卷拆分,但这些卷相互依赖才能解压缩。
有人有什么建议吗?提前谢谢!
答案1
Windows 上的免费软件“Spinzip”应该可以满足您的目的!;) http://skwire.dcmembers.com/wb/pages/software/spinzip.php
它基于 IZARCC(自动包含在 Spinzip 中)。您必须检查,但完整的原始路径可能会保留在压缩文件中!
再见
答案2
我不知道有哪个程序可以做到这一点,因为如果你在多个卷中制作一个 zip 文件,它们都会相关。最好的办法可能是制作 12 个文件夹,每个文件夹放一个 GB,然后单独压缩这些文件夹。
答案3
最后,我创建了一个快速的 Python 脚本,将文件拆分成子目录,然后单独压缩每个文件。
如果它对其他人有用,这是我的脚本:
import os
import csv
import shutil
def SplitFilesIntoGroups(dirsrc, dirdest, bytesperdir):
dirno = 1
isdircreated = False
bytesprocessed = 0
for file in os.listdir(dirsrc):
filebytes = os.path.getsize(dirsrc+'\\'+file)
#start new dir?
if bytesprocessed+filebytes > bytesperdir:
dirno += 1
bytesprocessed = 0
isdircreated = False
#create dir?
if isdircreated == False:
os.makedirs(dirdest+'\\'+str(dirno))
isdircreated = True
#copy file
shutil.copy2(dirsrc+'\\'+file, dirdest+'\\'+str(dirno)+'\\'+file)
bytesprocessed += filebytes
def Main():
dirsrc='C:\\Files'
dirdest='C:\\Grouped Files'
#1,024,000,000 = approx 1gb
#512,000,000 = approx 500mb
SplitFilesIntoGroups(dirsrc, dirdest, 512000000)
if __name__ == "__main__":
Main()
答案4
10 年零 8 个月后的回复