1
雖然使用C#ziparchival類Zip文件提取跨區不支持錯誤。它適用於少量文件,但大小超過1 GB的文件會拋出「不支持分割或跨越檔案。」我沒有明白它的意思。如何解決它?分裂和而在c#zip文件提取
雖然使用C#ziparchival類Zip文件提取跨區不支持錯誤。它適用於少量文件,但大小超過1 GB的文件會拋出「不支持分割或跨越檔案。」我沒有明白它的意思。如何解決它?分裂和而在c#zip文件提取
DotNetZip可以讓你做到這一點。從他們的文檔:
庫支持ZIP密碼,統一,ZIP64,流輸入和輸出 ,AES加密,多重壓縮級別,自解壓 檔案,跨區檔案,等等。
隨着Dotnetzip庫,您可以壓縮甚至超過4 GB。使用filestreams和bytearrays也是一個很好的選擇。
using (ZipFile zip = new ZipFile()) {
zip.CompressionLevel = CompressionLevel.BestCompression;
zip.UseZip64WhenSaving = Zip64Option.Always;
zip.BufferSize = 65536*8; //buffer size
foreach (var file in filenames) {
zip.AddFile(file);
}
zip.Save(outpath);
}
沒有一個更具體的問題,包括[mcve]顯示你在做什麼,這是不可能回答。但是,.zip文件被限制爲4GB的,你可能會運行到個別條目上的大小有限制,否則只有通過寫來解決的「跨越」檔案(即其中一個整個檔案跨越兩個或者更多的文件在磁盤上)。 –