DotNetZip Extract Folder&基于文件夹评论的内容

时间:2015-06-18 23:29:19

标签: c# dotnetzip

我有一些代码可以为zip文件添加不同的目录。重要的是,我在提取过程中根据其注释了解每个文件夹。这是zip示例代码:

   foreach (string folder in BackupDIRS)
        {

            string Source = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), folder);

            string Folder = Path.GetFileName(Path.GetDirectoryName(Source));


            ZipEntry e = zip.AddDirectory(Source, Folder);
            e.Comment = "comment here";


        }

以下是解压缩的代码:

  using (ZipFile zip1 = ZipFile.Read(src))
                {

                    foreach (ZipEntry e in zip1.Entries)
                    {

                        // e.comment will be null on actual files.
                    }
                }

该文件夹的实际入口点有注释,但它们的文件没有,这会产生问题,因为它会导致大多数条目具有空注释。

如何使文件与文件夹具有相同的注释,或者DotNetZip顺序提取目录文件,这意味着如果它的null我可以使用最后一个非null值,因为它将是该文件夹的文件。

1 个答案:

答案 0 :(得分:1)

调用ZipEntry e = zip.AddDirectory(Source, Folder);后,您可以遍历ZipEntry中的所有文件并分配评论:

using (var zipFile = new ZipFile(zipFilePath))
{
    var addDirectory = zipFile.AddDirectory(directoryPathToAdd, "directory");
    addDirectory.Comment = "directory comment";

    var zipEntries = zipFile.Entries
        .Where(x => !x.IsDirectory)
        .Where(x => x.FileName.StartsWith("directory"));

    foreach (var zipentry in zipEntries)
        zipentry.Comment = "zip entry comment";

    zipFile.Save();
}

希望它有所帮助。