如果我压缩 NTFS 中的文件夹,那么该 ZIP 文件是 NTFS 吗?

如果我压缩 NTFS 中的文件夹,那么该 ZIP 文件是 NTFS 吗?

如果我从 NTFS 分区压缩文件夹,它可以在无法读取 NTFS 文件系统的设备或操作系统上提取吗?

更一般地说,zip 文件是否以某种方式保留解压文件夹的文件系统?

答案1

如果我压缩 NTFS 中的文件夹,那么该 ZIP 文件是 NTFS 吗?

不。Zip 存档中的“文件系统”是......Zip,字面意思。

如果我从 NTFS 分区压缩文件夹,它可以在无法读取 NTFS 文件系统的设备或操作系统上提取吗?

是的。任何支持 Zip 格式的软件都能够提取任何 Zip 档案。

当归档一个文件时,各种文件系统级元数据不会被检索为单个不透明的数据块;归档程序会根据需要检索各个字段(例如,它复制文件的实际内容,然后进行一次系统调用来检索创建/修改的时间戳,然后进行另一次系统调用来检索隐藏/只读标志......)并以它想要的方式存储它们。

因此,虽然档案库可能会从原始档案库中复制一些(甚至大部分)文件系统元数据和属性,但这些属性在档案库中存储的确切方式是定义的按档案格式– 不是由原始文件系统。

即使存档确实存储了一些文件系统特定的参数,在大多数情况下,程序也可以直接跳过它们不知道如何处理的字段。例如,如果您在 Linux 上创建一个 Zip 文件,它将存储Linux 特定的文件权限字段,但该文件仍可在 Windows 上提取 - 提取器将忽略该字段。

同样,如果您在 WinRAR(或 7zip)中启用选项以存档 NTFS 权限或其他 NTFS 特定属性,它会将它们每个都存储为单独的字段,并且在提取到不兼容的存储时它们将被忽略。

更一般地说,zip 文件是否以某种方式保留解压文件夹的文件系统?

文件系统本身,不,他们没有保留这一点(软件甚至没有有访问权如此低的级别直接访问文件)

档案馆最多保存一些特质文件系统(和/或操作系统)的属性,例如 Windows 上的 NTFS 和 FAT 特有的“DOS 属性”(隐藏/只读/系统),或 VMS 上的 ODS 特有的“文件版本”,但这些通常以相当通用的方式存储。

所以,如果我使用图库应用程序为图像文件添加标签,zip 不一定会保留这些标签吗?

大多数图库应用不使用文件系统级元数据用于标记。(事实上,我只曾经看到了这样一个应用程序 - Windows 2000 / XP“属性”对话框曾经具有的内置标记。3)相反,您通常将标签直接嵌入每个文件的内容中或存储在相邻的文件中。

例如,当你处理 JPEG 照片时,EXIF/IPTC/XMP 标签实际上是文件的一部分数据就文件系统而言。数据作为一个大字节块进行检索,因此嵌入在 .jpeg 中的 EXIF 标签将始终与文件的其余数据一起存档,无论软件的元数据存档功能如何。

(图库应用使用的唯一文件系统级元数据字段可能是“上次修改”时间,以防它与 EXIF 日期不同。大多数归档应用捕获“上次修改”时间,因为它几乎在各个系统上都得到普遍支持。

类似地,例如 MP3 文件的 ID3 标签作为常规数据存储在文件内部;文件系统对它们并不知情。


1(是的,确实如此。请参阅zipinfo -v。)

2(Zip 格式还支持自定义子字段 - Unicode 文件名是一个子字段 - 因此理论上如果开发人员愿意的话它也可以扩展以存储 NTFS 元数据,但到目前为止还没有人愿意这样做。)

3(Windows Longhorn 对文件系统级标记有更宏伟的计划,但从未实现;相反,该功能在 Vista 中被彻底从 Explorer 中删除。)

答案2

简短的回答是,不是。

Zip 格式不存储除文件属性(只读、隐藏、存档和系统)之外的文件权限

如果您在一个具有特定安全权限的文件夹中创建档案,将该文件移动到具有不同权限的另一个文件夹,然后提取该档案,则新文件将使用从文件存储位置继承的权限进行创建。

如果您想要创建可以传输的文件系统,请使用 VHDX 之类的东西,其中文件内有完整的分区方案。请注意,如果您采用 NTFS 路由,则该文件系统将仅在您的计算机上工作,或者如果计算机已加入域,并且您使用域用户,则任何已加入同一域的计算机都可以工作。

您可以使用磁盘管理创建 VHDX 文件。如果需要,您甚至可以随后压缩 .VHDX 以进行压缩。

相关内容