【发布时间】:2019-04-09 01:25:51
【问题描述】:
我使用 Windows compress 创建了一个 ZIP 文件,然后使用 WinRAR 创建了另一个 ZIP 文件。在我的输出中,我有两组不同的输出!
文件夹列表不会出现在 Windows 生成的 ZIP 文件中,但我有一个文件夹列表以及 WinRAR 创建的 ZIP 文件。
- 哪一个是正确的存档?
- 您遇到过这个问题吗?
- 我该如何处理这种情况?
- 还有其他型号吗?
Windows 压缩 ZIP 文件的输出:
DirectoryName:data FileName:data.bin
DirectoryName: FileName:manifest.txt
DirectoryName:pdfs FileName:some.pdf
WinRAR ZIP 文件的输出:
DirectoryName: FileName:manifest.txt
DirectoryName:data FileName:
DirectoryName:data FileName:data.bin
DirectoryName:pdfs FileName:
DirectoryName:pdfs FileName:some.pdf
我正在使用此代码生成上述输出:
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
TreeNodeDetails tnd = new TreeNodeDetails(entry.FullName, seq_folder_id++, NODETYPE.ZIPFILE, NODE_Format.DIRECTORY);
Console.WriteLine("DirectoryName:" + tnd.directoryName + " FileName:" + tnd.fileName);
InitiateTree(rootTreeNode, tnd);
}
}
【问题讨论】:
-
使用 WinRAR 创建的 ZIP 文件是使用
"%ProgramFiles%\WinRAR\WinRAR.exe" a -ep1 -r Example.zip C:\Temp\ExampleFolder\*隐式创建的,这会导致将目录条目添加到独立于包含至少一个文件或为空的目录的 ZIP 存档中。这就像运行dir C:\Temp\ExampleFolder\* /B /S。通过另外使用开关-ed排除空目录WinRAR 将创建一个仅包含文件条目及其数据的ZIP 文件,就像在命令提示符窗口dir C:\Temp\ExampleFolder\* /A-D /B /S中运行一样。 -
@Mofi:感谢您的宝贵意见。