使用 c# 压缩文件夹中的文件并返回响应
Posted
技术标签:
【中文标题】使用 c# 压缩文件夹中的文件并返回响应【英文标题】:Zip files in a folder using c# and return response 【发布时间】:2017-07-25 11:23:21 【问题描述】:我想使用 c# 将文件和文件夹压缩到一个文件夹中,并且我检查了以前提出的问题,但它们对我不起作用……我目前正在尝试使用 DotNetZip。这是我的一些代码:
using (ZipFile zip = new ZipFile())
string[] files = Directory.GetFiles(@"C:\Users\T1132\Desktop\logs");
// add all those files to the logs folder in the zip file
zip.AddFiles(files, "logs");
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
var a = System.DateTime.Now.ToString();
zip.Save(@"C:\Users\T1132\Desktop\logs\Archiver.zip");
foreach (var f in files)
System.IO.File.Delete(f);
System.Diagnostics.Debug.WriteLine(f + "will be deleted");
上面的代码有效,但它只压缩文件并保留文件夹。请帮助我,谢谢。
【问题讨论】:
检查this answer 请参阅How to Ask 和minimal reproducible example,了解如何提出好的问题。您在使用 DotNetZip 时遇到了哪些具体问题?你试过什么?你被困在哪里了? 【参考方案1】:使用 DotNetZip 压缩文件的方法有很多。
using (ZipFile zip = new ZipFile())
zip.Encoding = System.Text.Encoding.GetEncoding("big5"); // chinese
zip.AddDirectory(@"MyDocuments\ProjectX");
zip.Save(ZipFileToCreate);
以上压缩目录。如需更多用途,您可以点击链接
https://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples
或
http://grapevine.dyndns-ip.com/download/authentec/download/dotnetzip/examples.htm
谢谢
【讨论】:
谢谢,到目前为止一切都很好,但我想对控制台应用程序屏幕上的弹出窗口做出响应,有什么想法吗? 你在控制台上想要什么? 我想要一个响应,说明它是否成功 您可以在邮政编码末尾打勾。要检查该位置是否存在 zip 文件,请在压缩之前给出。如果存在,则在您的控制台上返回 true,否则返回 false。【参考方案2】:我正在使用它,它工作得很好。确保目录具有足够的权限。
System.IO.Compression.ZipFile.CreateFromDirectory(zipPath, path + strFileName + ".zip");
【讨论】:
我已经搞定了,感谢@summerGhost的帮助【参考方案3】:您可以使用以下代码。
string zipFileName= "zip full path with extension";
var files = Directory.GetFiles(" directory path");
Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile();
foreach(var file in files)
zip.AddFile(file);
zip.Save(zipFileName);
【讨论】:
以上是关于使用 c# 压缩文件夹中的文件并返回响应的主要内容,如果未能解决你的问题,请参考以下文章