DotNetZip 根据文件夹注释提取文件夹和内容
本文关键字:文件夹 提取 注释 DotNetZip | 更新日期: 2023-09-27 17:56:57
我有一些代码将不同的目录添加到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 值,因为它将是该文件夹的文件。
调用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();
}
希望对您有所帮助。