【问题标题】:Effective way to search ZIP for an XML file with hashed name在 ZIP 中搜索带有散列名称的 XML 文件的有效方法
【发布时间】:2015-05-21 19:50:32
【问题描述】:

我有一个 zip 文件,其中包含许多文件夹和 XML 文件,我想选择一个特定文件。但是文件名是散列的,所以我无法确定它可能是什么,因为它是由其他应用程序生成的。

有没有一些有效的方法来选择这个 XML 文件?我有这些信息:

  • 每个 zip 文件的文件名都是唯一的。
  • 它直接位于 zip 中,而不是任何子文件夹中。
  • 它是唯一一个带有哈希名称的 XML 文件,其他文件名是已知的,但它们的数量可能会有所不同。

我试图避免将每个文件名与一些预定义的名称列表进行比较,但到目前为止我想不出其他任何东西。

【问题讨论】:

    标签: java xml hash zip


    【解决方案1】:

    如果文件名有模式,你可以尝试解析它,看看它是否匹配模式。

    • 解压内容
    • 将自己放在解压缩目录中
    • 创建一个解析目录的方法

      • 如果当前解析的对象是目录,则递归调用该方法
      • 如果当前解析的对象是一个扩展名为.xml的文件,检查它是否匹配这样的模式(如果匹配则返回true):

      filename.matches('.+\\-.+\\-.+\\-.+\\-.+);

    【讨论】:

    • 谢谢,这是个好主意。幸运的是我不需要检查子文件夹,所以它可能很快。我会看看我能用它做什么。
    • 再次感谢,它就像一个魅力。只是你的正则表达式中的一个小错误,应该是这样的:.matches(".+\\-.+\\-.+\\-.+\\-.+")
    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    相关资源
    最近更新 更多