2

我不确定我是否正确执行此操作。我想在我的 Java 项目中有一个包含一堆文本文件的文件夹或包。在代码中,我想列出文件夹中的所有文件,并能够读取它们。我希望这些资源文件成为我项目目录结构的一部分(以便可以使用我的源代码对它们进行版本控制)。

我已经看到 ClassLoader.*resource 方法,但无法识别我的源目录中的文件夹并列出它的内容......

顺便说一句,我正在使用 Eclipse。有谁知道如何实现这个目标?

谢谢

===========================================

更新:

感谢您的回复!我发现通过添加源文件夹,我只能通过名称访问里面的文件。但是,这不符合我的需要,因为文件夹的内容会发生变化,我希望能够动态读取所有内容,而不必在每次内容更改时都更改读取逻辑。我尝试为源文件夹中的常规文件夹创建一个文件并迭代它的内容。只要在 Eclipse 中运行,它就可以工作,但根据 Edwin 的评论,当我导出到 JAR 时这将不起作用,所以我回到了第一方。

我在想必须有一种方法可以在我的项目中包含可以以编程方式访问的资源文件(Android 会这样做并且它基于 java 对吗?)。那么有没有另一种方法来创建一个包含一堆文件的“资源”包,我可以在运行时访问这些文件,而无需更新代码来查找每个文件?我真的不想将此文件夹与我的源文件分开并将其维护在不同的位置,因为这会使部署复杂化......有人有什么想法吗?

谢谢

=====================================

解决方案:

我刚刚意识到 Android 在编译时会清点它的资源文件,以便在运行时使它们可用。所以这可能是要走的路:我将在我的 Ant 脚本中添加一个步骤,该脚本编写一个包含我文件夹中文件列表的文件(始终命名相同,以便我可以访问它)。这样我就可以知道所有可用资源文件的名称。感谢埃德温的帮助:)

4

1 回答 1

2

确保您的资源文件夹是 Eclipse Build Path 对话框中的源文件夹。然后,您将能够使用问题中提到的 ClassLoader 方法加载它们。

在此处输入图像描述

如果您使用此技术,源文件夹中的每个子文件夹都被视为一个包。因此,请确保在加载资源时考虑到这一点。

这种技术基本上可以确保这个文件夹中的所有 Java 文件都被编译并放置在分发文件夹下。并且任何其他文件都简单地从该文件夹复制到分发文件夹(即 bin 或 classes 文件夹)。

稍后,当您将项目打包到 jar 或 war 中时,您必须确保这些文件包含在打包文件中。

于 2012-10-26T15:00:19.677 回答