如何将 zip 文件拆分到多个独立卷中

如何将 zip 文件拆分到多个独立卷中

我有大约 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 个月后的回复

相关内容