【发布时间】:2020-05-24 02:36:16
【问题描述】:
有没有办法在压缩文件夹内的文件中搜索字符串而不解压缩文件?
我的情况是一年中有超过 100 万个文件被压缩。 例如 2008_01、2008_02 等。 我只需要提取/解压缩文件中具有特定序列号的文件。
我唯一能找到的是将数据解压缩到临时位置以执行搜索,但手动解压缩数据需要 45-60 分钟。所以我假设代码执行该任务需要同样长的时间,而且我没有那么多可用空间。
请帮忙。
【问题讨论】:
-
所以您用空间换取了搜索时间。不管压缩算法是什么,如果序列号会继续存在,我认为你应该制作(并保持维护)所有序列号的索引文件(或数据库),这样你就可以查找所需的文件。为什么要在可以进行索引搜索时搜索所有文件
-
我相信您应该能够将文件解压缩为流并搜索流 - 根据文件大小,您可以将整个文件保存在内存中然后保存,或者只是重新提取匹配。
-
您是否有 100 万个 zip 文件,每个文件包含 1 个文件?或者,一个包含一百万个文件的 Zip 文件?还是 N 个 zip 文件,每个文件包含 M 个文件(其中 NxM == 100 万)?根据您的情况,解决方案会有所不同。
-
每个压缩文件夹包含超过 10 万个文件。所以说实话,有超过 100 万个文件可供查询。
-
你知道你需要事先搜索哪些文件(即它们的完整路径)吗?因为您可以从 .zip 中提取特定文件的文件内容,而无需解压缩整个存档。