我想在C#中創建一個zip文件,它將包含幾乎8 GB的數據。我使用下面的代碼:如何在C#中使用SharpZipLib創建超過7 GB的zip文件?
using (var zipStream = new ZipOutputStream(System.IO.File.Create(outPath)))
{
zipStream.SetLevel(9); // 0-9, 9 being the highest level of compression
var buffer = new byte[1024*1024];
foreach (var file in filenames)
{
var entry = new ZipEntry(Path.GetFileName(file)) { DateTime = DateTime.Now };
zipStream.PutNextEntry(entry);
var bufferSize = BufferedSize;
using (var fs = new BufferedStream(System.IO.File.OpenRead(file), bufferSize))
{
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
zipStream.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
}
zipStream.Finish();
zipStream.Close();
}
此代碼對小文件下1 GB,但是當數據達到7-8 GB它拋出一個異常。
什麼是例外? –
這是爲什麼downvoted?這是一個有效的問題,不是嗎? –
@PhilipDaubmeier也許因爲這個問題沒有包含有關異常的任何信息? –