在Windows中,如何递归压缩文件夹,而只能压缩选择性文件?

Chen Li Yong

例如,我具有以下目录结构:

[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

假设我只想压缩:

  • 演示文稿B.pptx
  • 附加Report.xlsx
  • 每周通讯3.pdf
  • [电子邮件附件]的整个文件夹

但是我想保留文件夹结构,以便zip文件包含这样的文件结构:

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

怎么做?到目前为止,我所做的只是将文档的整个文件夹压缩,然后在zip文件中有选择地将其删除。但这非常耗时,因为实际情况是文件夹级别很深,有数百个文件,并且文件大小很大。

您是否知道任何本机方式或任何允许我执行此操作的外部程序?我认为Windows资源管理器中有一个选项可以压缩文件夹,但是该zip程序在每个文件和文件夹的前面都显示了一个带有复选框的文件夹树,以标记要包含在生成的zip文件中的文件和文件夹(如果有)像这样的任何程序都存在。谢谢。

Xen2050

7-zip应该能够使用要压缩的文件列表,并且可以使用其自己的.7z格式或常规.zip格式。

此页面描述了它应该如何工作,如何使用@file文件列表功能:

使用列表文件

列表文件是包含一个或多个文件和/或目录的列表的文件,这些文件和/或目录由换行符号分隔。7-Zip和IZArc命令行实用程序都可以使用列表文件来处理文件和目录。7-Zip默认情况下对列表文件使用UTF-8编码,但是如果需要,可以在命令行使用“ -scs”开关更改编码(有关更多信息,请参见7-zip.chm中的命令行版本部分) 。

使用列表文件压缩文件和/或目录的命令行语法:

对于7邮编:

7za a -tzip "C:\Your Folder\yourarchive.zip @"C:\Your Folder\yourlistfile.txt"
  • 7za – 7-Zip命令行可执行文件。
  • a –将文件添加到存档命令。
  • -tzip –将存档类型设置为zip文件(除非使用其他压缩格式,否则为可选文件)。

使用cygwin然后再使用类似linux的工具也tar应该可以工作,但这绝对是多余的,对于一个zip程序来说绝对没有必要。有一些tarWindows程序,但我会坚持使用7zip。

另一个想法可能是一个单独的文件夹,该文件夹仅具有所需文件的链接,并保持原始文件夹结构。它将创建原始文件的“镜像”,该原始文件始终与其链接的原始文件相同。然后只需备份该单独文件夹中的所有文件,只要它压缩实际的链接目标文件(而不只是链接)即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章