Descompactar arquivo zip: erro “Assinatura da diretório central não encontrada”

0

Sempre recebo esse erro toda vez que tento descompactar meu arquivo:

Archive:  Server.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of Server.zip or
        Server.zip.zip, and cannot find Server.zip.ZIP, period.

Eu fechei o zip com 7zip, mas ainda não está funcionando. Eu li algo sobre o MD5, eu preciso descompactar?

    
por JaggerNotchas 19.11.2017 / 06:48

1 resposta

0

Eu testei com 7z , zip e unzip deliberadamente misturando os programas, mas não consegui reproduzir o problema. No entanto, isso pode muito bem ser específico para os dados que são comprimidos.
Como o 7z usa o formato 7z por padrão e as extensões de nome de arquivo não importam. Primeiro pensei que ele criaria um 7z arquivo de formato apenas chamado zip , mas acontece que não é hostil ao usuário:% 7z a 1.zip 2 cria um arquivo 1.zip adequado mesmo sem a opção -t zip que especifica o formato No entanto, 7z a 1 2 cria 1.7z e 7z a -t zip 1 2 cria 1.zip como esperado.

Em geral, é uma boa ideia

  1. use o mesmo programa para empacotar e descompactar um arquivo:

    7z a Server.zip file1 file2 dir1/ # add files
    7z x Server.zip # extract with full paths
    7z e Server.zip # extract IGNORING paths
    zip Server.zip file1 file2 dir1/ # add files
    unzip Server.zip # extract with full paths
    
  2. use um hash criptográfico para testar se o arquivo foi transferido corretamente:

    1. Em seu servidor, salve a soma de hash com md5sum , sha1sum , sha224sum , sha256sum , sha384sum ou sha512sum 1 (todos seguindo a mesma sintaxe) , por exemplo

      sha1sum Server.zip otherfile.zip > sha1hashsums
      
    2. Transmita o (s) arquivo (s) zip e o arquivo sha1hashsums .
    3. Teste o (s) arquivo (s) zip com, por exemplo,

      $ sha1sum -c sha1hashsums
      Server.zip: FAILED
      otherfile.zip: OK
      

1 A diferença mais importante entre eles é o tamanho do hash, um hash mais longo sendo mais seguro. MD5 produz um hash de 128 bits, SHA1 um de 160 bits, os outros suportam o tamanho da soma de hash em seus nome, por exemplo sha512sum para um hash de 512 bits. Vou deixar o resto para a Wikipedia, ver os links.

    
por dessert 19.11.2017 / 09:48