Como zipar uma pasta recursivamente, mas apenas arquivos seletivos, no Windows?

1

Por exemplo, eu tenho essa estrutura de diretórios:

[C:\]
+ [Documents]
  + [Work] 
    + [Presentation]
      - Presentation A.pptx
      - Presentation B.pptx
      - Presentation C.pptx
      - Presentation D.pptx
    + [Account]
      - General Ledger.xlsx
      - Additional Report.xlsx
  + [Home]
    + [Kid's School]
      - School Enrollment List.docx
      - Weekly Newsletter 1.pdf
      - Weekly Newsletter 2.pdf
      - Weekly Newsletter 3.pdf
    + [Email Attachment]
      - Stores Weekly Discount.pdf
      - Teddy's Birthday Photo.jpg

Suponha que eu queira zipar apenas:

  • Apresentação B.pptx
  • Relatório adicional.xlsx
  • Newsletter semanal 3.pdf
  • Pasta inteira de [Anexo de e-mail]

Mas eu quero preservar a estrutura de pastas, para que o arquivo zip contenha a estrutura de arquivos assim:

Documents\Work\Presentation\Presentation B.pptx
Documents\Work\Account\Additional Report.xlsx
Documents\Home\Kid's School\Weekly Newsletter 3.pdf
Documents\Home\Email Attachment\Stores Weekly Discount.pdf
Documents\Home\Email Attachment\Teddy's Birthday Photo.jpg

Como fazer isso? Tudo o que fiz até agora é fechar a pasta inteira de Documentos e depois apagá-la seletivamente no arquivo zip. Mas isso é muito demorado, porque o caso real é que o nível das pastas é profundo, com centenas de arquivos e o tamanho dos arquivos é grande.

Você conhece alguma forma nativa ou algum programa externo que me permita fazer isso? Eu acho que algo como há uma opção no Windows Explorer para compactar uma pasta, mas o programa zip apresentou uma árvore de pastas com checkbox na frente de todos os arquivos e pastas para marcar quais arquivos e pastas serão incluídos nos arquivos zip resultantes, se houver qualquer programa como esse existe. Obrigado.

    
por Chen Li Yong 03.11.2015 / 04:10

1 resposta

1

7-zip deve ser capaz de usar uma lista de arquivos para compactar, e também pode usar o próprio .7z format ou% regular.zip format.

Esta página descreve como ela deve funcionar, usa o recurso @file lista de arquivos:

Using List files

List files are files that contain a list of one or more files and/or directories separated by new line symbols. Both the 7-Zip and IZArc command line utilities can use list files for processing files and directories. 7-Zip uses UTF-8 encoding for list files by default, but the encoding can be changed at the command line using the “-scs” switch if necessary (see the command line version section in 7-zip.chm for further information).

The command line syntax for compressing files and/or directories with a list file:

For 7-Zip:

7za a -tzip "C:\Your Folder\yourarchive.zip @"C:\Your Folder\yourlistfile.txt"
  • 7za – the 7-Zip command-line executable.
  • a – add files to the archive command.
  • -tzip – set archive type to a zip file (optional unless using another compression format).

Usar o cygwin e usar as ferramentas do linux como tar deve funcionar também, mas isso é definitivamente exagerado e desnecessário para apenas um programa zip. Existem alguns programas tar para windows , mas eu ficaria com 7zip.

Outra ideia pode ser uma pasta separada que tenha apenas links nos arquivos desejados, mantendo a estrutura de pastas original. Ele criaria um "espelho" dos arquivos originais que são sempre idênticos aos originais vinculados. Em seguida, faça backup de todos os arquivos nessa pasta separada, desde que ela feche os arquivos de destino do link real & não apenas os links.

    
por 05.11.2015 / 08:47

Tags