我在 Windows 7 下使用 7-Zip 来提取各种档案。一直存在的问题是没有单一的方法来处理子文件夹。
有些人像这样创建他们的档案(我们称之为类型A):
.
├── subfolder
│ ├── file 1
│ ├── file 2
│ └── ...
- “在此处提取”将提取所有内容至子文件夹/,这样就可以了;
- “提取至 <文件夹>”将创建额外的子文件夹级别,这很烦人。
其他人也这样创造它们(我们称之为类型乙):
.
├── file1
├── file 2
├── ...
- “提取至此处”将填充当前文件夹,如果此文件夹中已经包含大量其他文件,则会带来很多混乱,并且非常恼人的;
- “提取到<文件夹>”将创建一个子文件夹并方便地将存档内容填充到其中,这很好。
因此剩下两个选项:始终选择“提取到<文件夹>”并使用额外的子文件夹类型A档案。或者在提取档案之前打开它以检查这是否是类型A或者乙,然后适当地选择“提取至此处”或“提取至 <文件夹>”。
我通常选择后者,但我刚刚发现 KDE 提供了一个非常方便的在此提取存档,自动检测子文件夹实现自动化的功能。对于 A 类型档案,它将“提取至此处”,对于 B 类型档案,它将“提取至 <文件夹>”。
我喜欢这个想法。有没有提供此选项的 Windows 7 工具?最好集成在资源管理器上下文菜单中?也许它隐藏在 7-Zip 的某个地方,而我没找到它?
答案1
我相信文件路径WinRAR 存档提取对话框的高级选项卡上的部分可能就是您要找的内容:
编辑:好的,我相信我找到了。在 WinRAR 的Options / Settings / Compression
选项卡上,选择从提取路径中删除多余的文件夹。
根据帮助文件,它的作用如下:
从提取路径中删除多余的文件夹
此选项仅在上下文菜单中有效,仅适用于单个选定的存档,单个文件夹,存档根文件夹中没有文件,仅适用于“提取到目标名称\”命令,其中“目标名称”是 WinRAR 建议的文件夹名称,基于存档名称。如果满足所有这些条件,此选项将从提取路径中删除基于存档名称的顶级文件夹。
例如,如果您的 Pictures.rar 包含“Samples”文件夹中的所有文件,并且您使用“提取到 Pictures\”上下文菜单命令对其进行解压,则如果此选项关闭,WinRAR 会将文件放置到“Pictures\Samples”,如果此选项打开,则放置到“Samples”。因此,它有助于节省一次点击,避免必须打开“Pictures”文件夹,该文件夹只包含“Samples”。
此选项会在提取开始时引入额外的延迟,因为 WinRAR 需要扫描存档并分析其文件夹结构。请注意,即使在提取时将其从路径中删除,上下文菜单仍会显示基于存档的文件夹名称。在上下文菜单中显示正确的文件夹会在右键单击存档和显示上下文菜单之间引入潜在的烦人的延迟。
我刚刚尝试过,效果非常好,所以你最终只会得到 或<current_folder>\<archive_name>
,<current_folder>\<subfolder_name>
而不会得到<current_folder>\<archive_name>\<subfolder_name>
。
至于 7-Zip,我看到有人要求从 WinRAR 复制此功能悬而未决 3 年以上。
答案2
我在 7-zip 中没有看到过这种情况。我使用以下选项:
Extract to <Folder>
不知道你为什么说这很烦人?给出的文件夹名称通常是上次创建文件夹的名称,或者只是 zip 的名称。我发现在 90% 的情况下这都没问题。
或者,您也可以转到命令行。请参阅此邮政。我认为这就是 7-zip 的选项范围。
我不清楚在 Win7 上是否有任何其他工具可以执行此操作。