【发布时间】:2013-05-02 07:41:25
【问题描述】:
我在 javaproject 的包中有文件,我想迭代里面的所有文件。实际上,我在代码中手动编写了一个字符串数组,其中包含文件名。我怎样才能动态地做那个数组?
【问题讨论】:
我在 javaproject 的包中有文件,我想迭代里面的所有文件。实际上,我在代码中手动编写了一个字符串数组,其中包含文件名。我怎样才能动态地做那个数组?
【问题讨论】:
有几种方法可以做到这一点。我推荐这种方法:
编写一个单元测试,列出磁盘上目录中的所有文件,并将列表与代码中的字符串数组进行比较。如果发现不匹配,它应该在控制台上打印正确的代码并失败。
这样,测试将确保文件列表正确。如果它不再正确,只需简单的剪切和粘贴即可修复它。
另一种方法是检查类加载器,尝试创建 URL 并遍历包中的文件。这样的代码很脆弱,当在 Web 服务器上运行应用程序或使用不同的 Java 实现时,往往会以令人惊讶的方式失败。不要去那里。
另一种解决方案是在安装过程中将文件放入“config”文件夹。然后您的应用程序可以使用标准文件 API 来列出/定位它们。
编辑我的立场是正确的。您可以枚举包中的文件:
Enumeration<URL> urls = getClass().getClassLoader().getResources( "javaapplication4/myfiles" );
这应该返回上面示例的三个 URL。
【讨论】: