【问题标题】:Trying Zip different folders in in a specified directory using ZipFile尝试使用 ZipFile 压缩指定目录中的不同文件夹
【发布时间】:2015-06-10 14:08:53
【问题描述】:

我在堆栈溢出中找到了下面的代码,我尝试过但不知道如何充分使用它。

基本上,我希望能够使用 foreach 循环单独压缩所有文件,但我不会有文件列表,因为它们每次都会更改。

那么如何将根目录中的文件夹/目录列表放入数组中?

public static void CreateZipFile(string fileName, IEnumerable<string> files)
{
    var zip = ZipFile.Open(fileName, ZipArchiveMode.Create);
    foreach (var file in files)
    {
        zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
    }

    zip.Dispose();
}

【问题讨论】:

  • Directory.GetFiles()?目前还不清楚你到底想做什么。您在谈论的这些“所有文件”是什么?什么是“根目录”?
  • 基本上,c://root_folder/ = 根文件夹/顶级目录,里面是随机添加的子文件夹或子目录的列表,我如何将它们压缩到单独的压缩文件中。这意味着我需要我的代码来读取所有这些子文件夹并将它们存储在一个数组中,然后使用 foreach 循环来压缩它们
  • 让我看看,谢谢
  • 我只是在尝试这个,它只指文件是目录/文件夹的内容,我有兴趣处理文件夹

标签: c# zipfile


【解决方案1】:

通常我只使用DotNetZip
这段代码:

using (var file = new ZipFile(zipName))
{
    file.AddFiles(fileNames, directoryPathInArchive);
    file.Save();
}

zipName 是您要创建的 zip 存档的名称,fileNames 是您要放入其中的文件的名称。

【讨论】:

  • 我只是在尝试这个,它只指文件是目录/文件夹的内容,我有兴趣处理文件夹
  • @Jerry Mbawa 有一个AddDirectory 方法。
  • 使用 (var file = new ZipFile(zipName)) { file.AddDirectory(fileNames, directoryPathInArchive);文件.保存(); }
猜你喜欢
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多