使用 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# 压缩文件夹中的文件并返回响应的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 压缩单个文件

如何使用 C# 压缩单个文件?

C# Azure.Storage.Blobs SDK 如何列出和压缩容器中的所有文件并将压缩文件存储在另一个容器中

我们可以使用 C# 在 FTP 服务器中解压缩文件吗

C#中如何通过ZipFile类操作ZIP文件(压缩、解压)

是否可以在 C# 中将文件夹压缩在一起?