我正在编写代码以使用内置的 .NET 库在 C# 中压缩 ZIP 文件:
使用 System.IO.Compression;使用 System.IO;
但是,当压缩完成时,代码会输出一个无效的 zip 文件。似乎在代码中的某处,文件要么没有正确写入,要么完全关闭。我已经使用 dispose 和 close 来释放资源。
public bool CompressFile(FileInfo theFile)
{
StringBuilder compressSuccess = new StringBuilder();
FileStream sourceFile = File.OpenRead(theFile.FullName.ToString());
FileStream destinationFile = File.Create(theFile.FullName + ".zip");
byte[] buffer = new byte[sourceFile.Length];
sourceFile.Read(buffer, 0, buffer.Length);
using (GZipStream output = new GZipStream(destinationFile,
CompressionMode.Compress, true))
{
output.Write(buffer, 0, buffer.Length);
}
sourceFile.Dispose();
destinationFile.Dispose();
sourceFile.Close();
destinationFile.Close();
return true;
}
我会做错什么?是因为我强制扩展“.zip”吗?