#1055 Listed file names truncated to 64 characters on iso file

open
nobody
None
5
2012-12-07
2010-01-08
Geza Kovacs
No

The file in question is http://releases.ubuntu.com/9.04/ubuntu-9.04-alternate-amd64.iso

The 7-zip versions I have encountered this bug in are both 4.65 and 9.10 (beta), Windows 32-bit.

The displayed filenames when running "7z l", as well as in the 7-zip file explorer are truncated to the first 64 characters in the filename.

Examples (these should all end in .udeb, but are listed as follows)
pool\main\l\linux\firewire-core-modules-2.6.28-11-generic-di_2.6.28-11.42_amd64.ud
pool\main\l\linux\fs-secondary-modules-2.6.28-11-generic-di_2.6.28-11.42_amd64.ude
pool\main\l\linux\pcmcia-storage-modules-2.6.28-11-generic-di_2.6.28-11.42_amd64.u

The issue is with filename length, not path length, since long paths with a filename of length less than 64 like pool\main\l\linux-backports-modules-2.6.28\updates-modules-2.6.28-11-generic-di_2.6.28-11.12_amd64.udeb are correctly listed.

Discussion

  • Geza Kovacs
    Geza Kovacs
    2010-01-08

    Output of 7z l ubuntu-9.04-alternate-amd64.iso for 7-zip 4.65

     
  • Geza Kovacs
    Geza Kovacs
    2010-01-08

    Also, I believe that the iso file in question uses the rockridge extension to iso9660. If 7-zip doesn't support rockridge, then that would likely be the cause of this issue.

     
  • Igor Pavlov
    Igor Pavlov
    2010-01-09

    WinRar also shows such names.
    What program you can see long names for these files?

     
  • Geza Kovacs
    Geza Kovacs
    2010-01-10

    Loopmounting the iso file in Linux (mount -o loop), or burning it to CD using cdrtools on Linux provide the correct file names. On Windows, MagicISO (5.5 trial) was able to correctly able to display the long file names.

     
  • Igor Pavlov
    Igor Pavlov
    2010-01-10

    7-zip uses Joliet (file system) version of names.

    http://en.wikipedia.org/wiki/Joliet_%28file_system%29

    ---
    Joliet accomplishes this by supplying an additional set of filenames to be encoded in UCS-2. These filenames are stored in a special supplementary header that is safely ignored by ISO 9660-compliant software, thus preserving backward compatibility.

    The specification only allows filenames to be up to 64 Unicode characters in length. However, filenames up to 103 characters in length do not appear to cause any problems.
    ---

    I don't see simple solution now. Joliet is good. Maybe it will be difficult to modify 7-zip code to support both names (ISO name long names and Joliet names).