ZIP文件之间有什么区别?

时间:2018-11-05 16:40:33

标签: c# ziparchive winrar winzip

我使用Windows压缩创建了一个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);
    }
}

2 个答案:

答案 0 :(得分:2)

是的,有几种压缩类型,最常见的是Zip,GZip和Rar。所需的类型取决于您要使用的类型以及要使用的程序进行压缩/解压缩,并且由于您似乎正在编写自己的程序,因此它也应该可以正常工作。三种主要类型之间的大小差异不大,尽管这取决于要压缩的存档的大小。如此大胆地取决于您!

如果您担心出现问题,可以解压缩它们的内容并进行比较,然后根据压缩大小决定保留哪一个。 zip一直很普遍,但是大多数zip程序现在也可以处理rar。

答案 1 :(得分:1)

两个示例之间没有功能上的区别。例如:

DirectoryName:data FileName:data.bin

如果文件夹'data'不存在,则会创建该文件夹,然后将提取'data.bin'文件并将其添加到该文件夹​​。