我有一个很大的 zip 文件(101 GB),没有足够的磁盘空间直接复制 zip 存档中的所有文件。我想知道是否有办法提取 zip 文件的内容,同时删除已从存档中复制出来的文件。因此,在操作结束时,我将得到一个里面没有任何内容的 zip 文件和一个包含 zip 文件所有内容的文件夹。我应该提到,zip 文件里面有文件夹,文件夹里面有图片。我该如何逐一复制/删除照片?我可以使用 Powershell、命令提示符、C++ 和 Python。
答案1
尝试使用基于修改后的代码的 powershell https://stackoverflow.com/questions/20269202/remove-files-from-zip-file-with-powershell。我按照你的需求修改了它。
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression")
$zipfile = "Zip file path here"
$OutFolder = "Output folder here"
$stream = New-Object IO.FileStream($zipfile, [IO.FileMode]::Open)
$mode = [IO.Compression.ZipArchiveMode]::Update
$zip = New-Object IO.Compression.ZipArchive($stream, $mode)
$zip.Entries | Foreach {
$ToDel = $_
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_,"$($OutFolder)\$($_.Name)",$true)
$ToDel.Delete()
}
$zip.Dispose()
$stream.Close()
$stream.Dispose()
答案2
我知道这已经很老了,但其中的信息是不正确的。要获取 ZipFileExtensions,您需要先引用 System.IO.Compression.FileSystem。通过编写一些 C# 代码,这会容易得多。
安迪