的ZipEntry的路径名的文件分隔符?(File separators of Path name

2019-07-05 01:45发布

ZIP条目存储条目的全路径名,因为(我敢肯定,下一部分的)的ZIP压缩文件是没有组织的目录。 元数据包含有关文件应该如何被存储(内部目录)的信息。

如果我在Windows中创建一个ZIP文件,当我解压在其他操作系统中的数据,如Mac OS X中,文件结构保持,因为它使用的是Windows。 这是因为unzipper旨在解决这个问题,或者ISIT因为ZIP文件里面分离器是标准?

我问这个,因为我试图找到使用压缩文件名的ZIP文件中的条目。 但文件分隔符,我应该使用,使其在Windows以外的系统上运行?

我使用Java和方法: .getName()中的ZipEntry给我使用的是Windows文件分隔符的路径\ 。 难道是不够的,如果我使用java File.separator分隔,使其在另一个操作系统工作? 或者将我试图找到我的每一个可能的分隔文件?

Answer 1:

该文件分隔符是依赖于创建ZIP文件的应用程序。 有些应用程序使用系统文件分隔符,而有些使用“文明”正斜杠“/”。 所以,如果你正在创建的zip文件,然后消费它,那么你可以简单地使用正斜杠作为文件分隔符。 如果在别的地方创建压缩文件,那么你应该找出使用了哪个分离器。 我不知道一个简单的方法,但你可以用蛮力方法,并检查了两个分离的类型为你的进步。

有些应用程序,特别是定制拉链创建代码,可以混合使用不同的压缩项的分隔符,所以不要忘记检查每个条目。



Answer 2:

该.zip文件规范状态:

4.4.17.1文件的名称,可选相对路径。 存储路径不能包含驱动器或设备函,或斜线。 所有的斜杠必须是正斜杠“/”,而不是向后斜杠“\”与Amiga的和UNIX文件系统的相容性等。如果输入从标准输入进来,没有文件名称字段。



文章来源: File separators of Path name of ZipEntry?