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


1

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

[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文件中的文件和文件夹(如果有)像这样的任何程序都存在。谢谢。


1
允许您仅在特定列表中添加文件的终端程序将起作用。我知道tar可以做到这一点,我确定Windows的终端zip程序存在,也许比旧的pkzip程序新?尝试在网络上搜索Windows终端zip吗?
Xen2050

好吧,我会寻找它。:)
Chen Li Yong

Answers:


1

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。

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


等待。链接是什么意思?
陈李勇

文件链接/符号链接,符号链接,例如“软”或“硬”链接。一种“类似文件”的东西,它指向其他地方的另一个真实文件。这是一个不错的页面,其中包含一些操作方法,不确定您使用的是哪个版本的Windows,但是这些应该适用于当前的任何版本:在Windows Vista中使用Symlinks。Wikipedia对于NTFS符号链接也有
话要说

哦,我明白了。我明白你的意思。因此,文件将随着原始文件的更新而保持更新。但是仍然有一个问题。每次需要压缩的文件很可能会有所不同。也许今天我要压缩的文件document\Adata\finance\Bphoto\C。下一次,我可能需要压缩的文件music\pop\Xpresentation\monday\Yproject\java\Z。这使得构建空文件夹结构和使软链接变得不切实际,这就是为什么我确实需要选择性zip程序的原因。但是,谢谢您的阐述。:)
陈李勇

@ChenLiYong我想我有一个使用7-zip的解决方案,该解决方案应该可以处理要压缩的文件的文本列表。我将编辑答案以添加它:-)
Xen2050
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.