在构建一个提取ZIP文件的应用程序时,我注意到有时ZIP文件显式地包含目录的条目,有时不包含目录的条目。例如,给出了以下结构
folder1/
└── file1当通过unzip -lv file.zip列出内容时,我发现提供以下不同输出的文件:
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 1 file Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2023-04-20 13:54 00000000 folder1/
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 2 files注意第二个文件夹中显式声明的文件夹。
这里的标准是什么?程序通常会假设如何处理这个问题吗?两种方法中的一种有优势吗?
发布于 2023-04-20 12:20:09
标准没有指定这一点,但通常的做法是将目录存储为单独的条目,这样也可以存储目录元数据。
由于没有单独目录条目的ZIP文件是有效的,所以程序不应该对它们做任何假设。
(使用Info zip,-D标志跳过存储目录条目。)
https://unix.stackexchange.com/questions/743511
复制相似问题