压缩文件路径分隔符

时间:2020-02-18 08:36:08

标签: zip

我正在将zip文件传递给具有Unix环境的公司,他们告诉我路径分隔符错误。我找到了一个可行的解决方案,但是当我将其投入生产时,路径分隔符又是错误的。

在使用Windows环境时,是否可以查看zip文件具有哪个路径分隔符?

无论我如何尝试打开文件,即使我知道一个文件带有反斜杠而另一个文件带有正斜杠,路径分隔符也一样显示,我无法将它们分开。强文本 < / p>

1 个答案:

答案 0 :(得分:1)

zip文件中的路径分隔符必须始终为/。这是zip文件的规范(APPNOTE.TXT)表示

   4.4.17.1 The name of the file, with optional relative path.
   The path stored MUST NOT contain a drive or
   device letter, or a leading slash.  All slashes
   MUST be forward slashes '/' as opposed to
   backwards slashes '\' for compatibility with Amiga
   and UNIX file systems etc.  If input came from standard
   input, there is no file name field.  

在Windows上,解压缩程序会将带有/的路径转换为使用\的本机Windows路径。

要查看zip文件中实际使用的路径分隔符,可以尝试在其上运行zipdetailsFilename字段显示文件内部实际存储的内容。下面的zip文件只有一个文件tmp/abc

$ zipdetails /tmp/abc.zip 

0000 LOCAL HEADER #1       04034B50
0004 Extract Zip Spec      0A '1.0'
0005 Extract OS            00 'MS-DOS'
0006 General Purpose Flag  0000
0008 Compression Method    0000 'Stored'
000A Last Mod Time         505246C0 'Tue Feb 18 08:54:00 2020'
000E CRC                   4788814E
0012 Compressed Length     00000004
0016 Uncompressed Length   00000004
001A Filename Length       0007
001C Extra Length          001C
001E Filename              'tmp/abc'
0025 Extra ID #0001        5455 'UT: Extended Timestamp'
0027   Length              0009
0029   Flags               '03 mod access'
002A   Mod Time            5E4BA627 'Tue Feb 18 08:53:59 2020'
002E   Access Time         5E4BA627 'Tue Feb 18 08:53:59 2020'
0032 Extra ID #0002        7875 'ux: Unix Extra Type 3'
0034   Length              000B
0036   Version             01
0037   UID Size            04
0038   UID                 0000245B
003C   GID Size            04
003D   GID                 00005208
0041 PAYLOAD               abc.

0045 CENTRAL HEADER #1     02014B50
0049 Created Zip Spec      1E '3.0'
004A Created OS            03 'Unix'
004B Extract Zip Spec      0A '1.0'
004C Extract OS            00 'MS-DOS'
004D General Purpose Flag  0000
004F Compression Method    0000 'Stored'
0051 Last Mod Time         505246C0 'Tue Feb 18 08:54:00 2020'
0055 CRC                   4788814E
0059 Compressed Length     00000004
005D Uncompressed Length   00000004
0061 Filename Length       0007
0063 Extra Length          0018
0065 Comment Length        0000
0067 Disk Start            0000
0069 Int File Attributes   0001
     [Bit 0]               1 Text Data
006B Ext File Attributes   81A40000
006F Local Header Offset   00000000
0073 Filename              'tmp/abc'
007A Extra ID #0001        5455 'UT: Extended Timestamp'
007C   Length              0005
007E   Flags               '03 mod access'
007F   Mod Time            5E4BA627 'Tue Feb 18 08:53:59 2020'
0083 Extra ID #0002        7875 'ux: Unix Extra Type 3'
0085   Length              000B
0087   Version             01
0088   UID Size            04
0089   UID                 0000245B
008D   GID Size            04
008E   GID                 00005208

0092 END CENTRAL HEADER    06054B50
0096 Number of this disk   0000
0098 Central Dir Disk no   0000
009A Entries in this disk  0001
009C Total Entries         0001
009E Size of Central Dir   0000004D
00A2 Offset to Central Dir 00000045
00A6 Comment Length        0000
Done
相关问题