当前位置: 首页 > 面试题库 >

ZipEntry的路径名的文件分隔符?

赵元白
2023-03-14
问题内容

ZIP条目存储条目的完整路径名,因为(我确定是下一部分)ZIP存档未组织为目录。元数据包含有关应如何存储文件的信息(在目录内部)。

如果在Windows中创建一个ZIP文件,则在另一个OS(例如Mac OS
X)中解压缩数据时,文件结构将保持与Windows中相同的状态。这是因为解压缩程序旨在处理此问题,还是因为ZIP中的文件分隔符是标准的?

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

我正在使用Java及其方法:.getName()的,ZipEntry使用Windows文件分隔符为我提供了路径\。如果我使用java
File.separator分隔符使其在另一个OS上运行就足够了吗?还是我必须尝试使用​​每个可能的分隔符来查找我的文件?

荣誉正确答案提及

@Eren Yilmaz给出的答案正确地描述了许多工具(甚至您可以自己编写的工具)的功能。但是,鉴于.zip标准清楚地记录了 必须 如何做,因此
必须 更新正确的答案


问题答案:

该.zip文件规范状态:

4.4.17.1文件名,带有可选的相对路径。存储的路径不得包含驱动器或设备字母或斜杠。为了与Amiga和UNIX文件系统兼容,所有斜杠必须为正斜杠“
/”,而不是反斜杠“ \”。如果输入来自标准输入,则没有文件名字段。



 类似资料:
  • 我想从图库中选择一个图像,然后使用它将图像加载到ImageView项中。 但是图像没有以正确的方式旋转,所以我应该使用ExifInterface类,并且exif构造函数希望文件的路径是字符串,而不是URI。 为了将URI转换为字符串,我编写了以下方法: 问题从这里开始... 结果变量总是返回null。我尝试了stackoverflow中的许多解决方案,如下所示: 我试图用null值查询投影。仍然返

  • 问题 你需要使用路径名来获取文件名,目录名,绝对路径等等。 解决方案 使用 os.path 模块中的函数来操作路径名。 下面是一个交互式例子来演示一些关键的特性: >>> import os >>> path = '/Users/beazley/Data/data.csv' >>> # Get the last component of the path >>> os.path.basename

  • 问题内容: 以下是我的Windows目录的路径。通常,路径应使用\而不是//,但两者似乎都可以正常工作。 与Linux路径相同。法线应该用/代替//。上面和下面的代码片段都可以正常工作,并将抓取指定文件的内容。 因此,它们都使用奇怪的文件路径声明,但似乎都可以正常工作。请详细说明。 例如, 问题答案: 通常,在Windows上指定文件路径时,应使用反斜杠。但是,在Java和Windows世界之外的

  • 问题内容: 我的Android应用程序中有以下字符串: 我需要操纵字符串并为该输出分割字符串: 我需要始终取字符串的最后一个元素。 如何在Java中输出此内容? 我非常感谢您在解决此问题方面可以给我的任何帮助。 问题答案: 另一种可能性:

  • 我在输入中有一个路径,没有统一的分隔符。 示例: null null 在Java中,如何在路径的第一部分的基础上统一分隔符?

  • 问题内容: 我有完整的文件路径,我想获取文件名。 我正在使用以下指令: 但是在Windows上它提供了: 我可以避免这种例外吗?有一个更好的方法吗? 问题答案: 问题是必须转义才能在正则表达式 中将 其 用作反斜杠 。您应该使用 不 使用正则表达式 的拆分API __ ,或者首先使用: 甚至更好,为此使用API: