gpt4 book ai didi

c# - 如何压缩大文件 C#

转载 作者:行者123 更新时间:2023-11-30 19:36:05 25 4
gpt4 key购买 nike

我正在使用这种方法来压缩文件,它一直很好用,直到我得到一个 2.4 GB 的文件,然后它给我一个溢出错误:

 void CompressThis (string inFile, string compressedFileName)
{

FileStream sourceFile = File.OpenRead(inFile);
FileStream destinationFile = File.Create(compressedFileName);


byte[] buffer = new byte[sourceFile.Length];
sourceFile.Read(buffer, 0, buffer.Length);

using (GZipStream output = new GZipStream(destinationFile,
CompressionMode.Compress))
{
output.Write(buffer, 0, buffer.Length);
}

// Close the files.
sourceFile.Close();
destinationFile.Close();
}

如何压缩大文件?

最佳答案

你不应该把整个文件写入内存。使用 Stream.CopyTo反而。此方法从当前流中读取字节并使用指定的缓冲区大小(默认为 81920 字节)将它们写入另一个流。

如果使用 using 关键字,您也不需要关闭 Stream 对象。

void CompressThis (string inFile, string compressedFileName)
{
using (FileStream sourceFile = File.OpenRead(inFile))
using (FileStream destinationFile = File.Create(compressedFileName))
using (GZipStream output = new GZipStream(destinationFile, CompressionMode.Compress))
{
sourceFile.CopyTo(output);
}
}

您可以在 Microsoft Docs (formerly MSDN) 上找到更完整的示例.

关于c# - 如何压缩大文件 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com