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