Como é possível que um arquivo ZIP contenha vários arquivos com o mesmo nome no mesmo subdiretório?

1

Eu estava extraindo o código-fonte do Free Pascal em um diretório vazio usando Midnight Commander (no Mac OS X, que distingue entre AFAIK em minúsculas e maiúsculas) e foi perguntado se gostaria de substituir um arquivo. Não me lembro qual arquivo foi, pois não prestei muita atenção e não sei se havia mais de um, já que optei por substituir todos, mas lembro que o arquivo de substituição era exatamente do mesmo tamanho que o original. então eu não me preocupei. Mas eu simplesmente não consigo entender como é possível que um segundo arquivo com exatamente o mesmo nome e localização tenha sido encontrado no mesmo arquivo ZIP.

    
por Ivan 15.12.2015 / 04:16

2 respostas

1

Acredito que isso seja totalmente possível de acordo com o formato ZIP. O problema é bastante incomum, porque a maioria dos softwares que criam arquivos ZIP escolherão atualizar um arquivo já existente, em vez de criar um segundo arquivo. Eu vou fazer isso: talvez o formato de arquivo ZIP mantém o controle de arquivos usando um número de índice, em vez de usar os nomes de arquivo para indexar? De qualquer forma, como minha memória nebulosa lembra (quando eu brincava com coisas como um adolescente, muitos anos atrás), se eu fizesse um arquivo ZIP de dois arquivos, TEXT1 e TEST2, e então usasse um editor hexadecimal para renomear TEST2 para TEXT1, então Eu teria um arquivo ZIP com dois arquivos chamados TEXT1. Não é absolutamente uma violação. O comportamento típico do software é perguntar sobre a substituição do arquivo existente quando o arquivo posterior é extraído.

Também acho que consegui criar a situação com algumas atividades menos estranhas, talvez ao trabalhar com vários sistemas de arquivos (como o HPFS). Usar um sistema de arquivos que suporta recursos para os quais o ZIP não foi projetado pode ser particularmente propenso a fazer coisas como essa acontecer.

No Windows 95, acho que poderia forçar coisas semelhantes compactando "C: \ Program Files \ Something.txt" e "C: \ Progra ~ 1 \ SOMETH ~ 1.TXT"

Eu não tenho uma resposta para exatamente o que você fez para criar tal coisa, mas os resultados relatados não são surpreendentes para mim. Se isso estiver causando algum problema sério, convém considerar um formato de arquivo diferente. Normalmente, o .tar é considerado muito bom e preserva os detalhes do sistema de arquivos (especialmente em coisas que são semelhantes ao Unix).

    
por 15.12.2015 / 08:27
0

Como a patrix descobriu (isso deve realmente ser uma resposta, não uma edição de pergunta tornando a pergunta ridícula), de fato existem 2 arquivos idênticos com o mesmo nome escritos em casos diferentes:

pse@Mithos:~/.tmp$ unzip -v fpc.zip | grep -i boyscout.inc
    4747  Defl:N     1607  66%  10-13-14 10:25  8b6e16fd  fpc/packages/libgbafpc/src/gba/BoyScout.inc
    4747  Defl:N     1607  66%  01-04-15 02:01  8b6e16fd  fpc/packages/libgbafpc/src/gba/boyscout.inc

e como Tetsujin notou o HFS (o sistema de arquivos do Mac OS X) não permite isso por padrão.

    
por 15.12.2015 / 12:08