[英]C# Created ZIP file is invalid
我正在嘗試將多個文件壓縮為一個 zip 文件,但是生成的 zip 文件無效,我的代碼在這里,我不知道這里出了什么問題。
public static void DownloadRQFFiles(string[] sourceFileList, string saveFullPath)
{
MemoryStream ms = new MemoryStream();
foreach (string filePath in sourceFileList)
{
Console.WriteLine(filePath);
if (File.Exists(filePath))
{
string fileName = Path.GetFileName(filePath);
byte[] fileNameBytes = System.Text.Encoding.UTF8.GetBytes(fileName);
byte[] sizeBytes = BitConverter.GetBytes(fileNameBytes.Length);
ms.Write(sizeBytes, 0, sizeBytes.Length);
ms.Write(fileNameBytes, 0, fileNameBytes.Length);
byte[] fileContentBytes = System.IO.File.ReadAllBytes(filePath);
ms.Write(BitConverter.GetBytes(fileContentBytes.Length), 0, 4);
ms.Write(fileContentBytes, 0, fileContentBytes.Length);
}
}
ms.Flush();
ms.Position = 0;
using (FileStream zipFileStream = File.Create(saveFullPath))
{
using (GZipStream zipStream = new GZipStream(zipFileStream, CompressionMode.Compress))
{
ms.Position = 0;
ms.CopyTo(zipStream);
}
}
ms.Close();
}
請參閱 Microsoft 文檔以獲取幫助。 這實際上是谷歌上的第一個結果:
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";
ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
}
其中startPath
是包含要壓縮的文件的目錄, zipPath
是要創建 zip 文件的位置, extractPath
是應提取這些文件的位置(該示例同時顯示了壓縮和提取)。
有關如何利用System.IO.Compression
命名空間的更多示例,請訪問我在下面提供的來源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.