在此处提取存档,自动检测子文件夹

Lau*_*dou 7 windows-7 extract 7-zip

我在 Windows 7 下使用 7-Zip 来提取各种档案。一直存在的问题是没有一种方法可以处理子文件夹。

有些人像这样创建他们的档案(我们称之为类型A):

.
??? subfolder
?   ??? file 1
?   ??? file 2
?   ??? ...
Run Code Online (Sandbox Code Playgroud)
  • “在此处提取”会将所有内容提取到子文件夹/,这很好;
  • “Extract to <Folder>”将创建一个额外的子文件夹 level,这很烦人。

其他人像这样创建它们(我们称之为B型):

.
??? file1
??? file 2
??? ...
Run Code Online (Sandbox Code Playgroud)
  • “Extract Here”将填充当前文件夹,如果该文件夹已经包含大量其他文件,这会带来很多混乱,并且非常烦人;
  • “Extract to <Folder>”将创建一个子文件夹并方便地用存档内容填充它,这很好。

因此,这留下了两个选项:始终选择“提取到 <文件夹>”并使用A 类存档的额外子文件夹。或者在解压缩之前打开存档以检查这是A类型还是B类型,然后适当地选择“在此处提取”或“提取到 <文件夹>”。

我通常做后者,但我刚刚发现 KDE 提供了一个非常方便的Extract Archive Here,Autodetect Subfolder功能可以自动执行此操作。对于 A 类档案,它将“在此处提取”,对于 B 类档案,它将“提取到 <文件夹>”。

我喜欢这个主意。是否有提供此选项的 Windows 7 工具?最好集成在资源管理器上下文菜单中?也许它隐藏在 7-Zip 的某个地方而我只是没有找到?

Kar*_*ran 3

我相信WinRAR 存档提取对话框的“高级”选项卡上的“文件路径”部分可能就是您正在寻找的内容:

WinRAR 高级压缩包解压选项 1


编辑:好吧,我相信我有它。在 WinRAR 的Options / Settings / Compression选项卡上,选择“从提取路径中删除冗余文件夹”

WinRAR 高级压缩包解压选项 2

根据帮助文件,它的作用如下:

从提取路径中删除多余的文件夹

此选项仅在上下文菜单中有效,仅适用于具有单个文件夹且存档根文件夹中没有文件的单个选定存档,并且仅适用于“Extract to DestName\”命令,其中“DestName”是 WinRAR 建议的基于存档的文件夹名称姓名。如果满足所有这些条件,此选项将根据存档名称从提取路径中删除顶级文件夹。

例如,如果您的 Pictures.rar 包含“Samples”文件夹中的所有文件,并且使用“Extract to Pictures\”上下文菜单命令将其解压,则 WinRAR 会将文件放置到“Pictures\Samples”(如果此选项关闭)并“样本”(如果已打开)。因此,它有助于节省一次点击,避免打开“图片”文件夹,其中只包含“样本”。

此选项在提取开始时引入了额外的延迟,因为 WinRAR 需要扫描存档并分析其文件夹结构。请注意,上下文菜单仍然显示基于存档的文件夹名称,即使在解压时它将从路径中删除。显示上下文菜单中已有的正确文件夹可能会在右键单击存档和显示上下文菜单之间引入潜在的令人烦恼的延迟。

我刚刚尝试过,效果非常好,所以你最终会得到<current_folder>\<archive_name>or <current_folder>\<subfolder_name>,并且 never <current_folder>\<archive_name>\<subfolder_name>

至于 7-Zip,我发现从 WinRAR 复制此功能的请求已经等待了 3 年多