在 ZIP 中搜索具有散列名称的 XML 文件的有效方法
Effective way to search ZIP for an XML file with hashed name
我有一个 zip 文件,其中包含很多文件夹和 XML 文件,我想 select 一个特定的文件。但是文件名是经过哈希处理的,所以我无法真正判断它可能是什么,因为它是由其他应用程序生成的。
select 这个 XML 文件有什么有效的方法吗?我有这个信息:
- 每个 zip 文件的文件名都是唯一的。
- 它直接位于 zip 中,不在任何子文件夹中。
- 这是唯一一个 XML 具有散列名称的文件,其他文件名是已知的,但它们的数量可能会有所不同。
我试图避免将每个文件名与一些预定义的名称列表进行比较,但到目前为止我想不出其他任何东西。
如果文件名有模式,您可以尝试解析它并查看它是否与模式匹配。
- 解压内容
- 将自己置于解压目录
创建一个解析目录的方法
- 如果当前解析的对象是目录,则递归调用该方法
- 如果当前解析的对象是一个扩展名为 .xml 的文件,检查它是否匹配这样的模式(如果匹配它将 return 为真):
filename.matches('.+\-.+\-.+\-.+\-.+);
我有一个 zip 文件,其中包含很多文件夹和 XML 文件,我想 select 一个特定的文件。但是文件名是经过哈希处理的,所以我无法真正判断它可能是什么,因为它是由其他应用程序生成的。
- 每个 zip 文件的文件名都是唯一的。
- 它直接位于 zip 中,不在任何子文件夹中。
- 这是唯一一个 XML 具有散列名称的文件,其他文件名是已知的,但它们的数量可能会有所不同。
我试图避免将每个文件名与一些预定义的名称列表进行比较,但到目前为止我想不出其他任何东西。
如果文件名有模式,您可以尝试解析它并查看它是否与模式匹配。
- 解压内容
- 将自己置于解压目录
创建一个解析目录的方法
- 如果当前解析的对象是目录,则递归调用该方法
- 如果当前解析的对象是一个扩展名为 .xml 的文件,检查它是否匹配这样的模式(如果匹配它将 return 为真):
filename.matches('.+\-.+\-.+\-.+\-.+);