gpt4 book ai didi

c# - SharpZipLib 的基础知识。我错过了什么?

转载 作者:太空狗 更新时间:2023-10-30 00:13:25 27 4
gpt4 key购买 nike

我的代码中有以下方法:

private bool GenerateZipFile(List<FileInfo> filesToArchive, DateTime archiveDate)
{
try
{
using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(GetZipFileName(archiveDate))))
{
zipStream.SetLevel(9); // maximum compression.
byte[] buffer = new byte[4096];

foreach (FileInfo fi in filesToArchive)
{
string fileName = ZipEntry.CleanName(fi.Name);
ZipEntry entry = new ZipEntry(fileName);
entry.DateTime = fi.LastWriteTime;
zipStream.PutNextEntry(entry);

using (FileStream fs = File.OpenRead(fi.FullName))
{
StreamUtils.Copy(fs, zipStream, buffer);
}

zipStream.CloseEntry();
}

zipStream.Finish();
zipStream.Close();
}
return true;
}
catch (Exception ex)
{
OutputMessage(ex.ToString());
return false;
}
}

这段代码生成了一个包含所有正确条目的 ZIP 文件,但每个文件都被列为 4 TB(包括解压和打包),当我尝试打开它时会产生以下错误:

Extracting to "C:\winnt\profiles\jbladt\LOCALS~1\Temp\"
Use Path: no Overlay Files: yes
skipping: QPS_Inbound-20081113.txt: this file is not in the standard Zip 2.0 format
Please see www.winzip.com/zip20.htm for more information
error: no files were found - nothing to do

代码实际上是从示例中提取的,但我似乎遗漏了一些东西。有没有人有任何指示?

最佳答案

在切换到 DotNetZip 之前,我一直使用 SharpZipLib您可能想检查一下它作为替代方案。

例子:

try
{
using (ZipFile zip = new ZipFile("MyZipFile.zip")
{
zip.AddFile("c:\\photos\\personal\\7440-N49th.png");
zip.AddFile("c:\\Desktop\\2005_Annual_Report.pdf");
zip.AddFile("ReadMe.txt");
zip.Save();
}
}
catch (System.Exception ex1)
{
System.Console.Error.WriteLine("exception: " + ex1);
}

关于c# - SharpZipLib 的基础知识。我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/318387/

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