2

これを正しく行っているかどうかはわかりません。たくさんのテキストファイルを含むフォルダまたはパッケージをJavaプロジェクトに入れたいです。コードでは、フォルダー内のすべてのファイルを一覧表示して、それらを読み取れるようにします。これらのリソースファイルをプロジェクトのディレクトリ構造の一部にしたい(ソースでバージョン管理できるようにするため)。

ClassLoader。*resourceメソッドを見ましたが、ソースディレクトリ内のフォルダを識別してその内容を一覧表示できません...

ところで、私はEclipseを使用しています。誰かがこの目標を達成する方法を知っていますか?

ありがとう

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

アップデート:

返信ありがとうございます!ソースフォルダを追加することで、名前でしかファイルにアクセスできないことがわかりました。ただし、フォルダの内容が変わるため、これは私のニーズには合いません。内容が変わるたびに読み取りロジックを変更することなく、すべての内容を動的に読み取ることができるようにしたいと考えています。ソースフォルダ内に通常のフォルダのファイルを作成し、その内容を繰り返してみました。これはEclipseで実行されている限り機能しますが、Edwinのコメントによると、JARにエクスポートすると機能しないため、最初の状態に戻ります。

プログラムでアクセスできるリソースファイルをプロジェクトに含める方法が必要だと思います(Androidはこれを行い、Javaに基づいていますか?)。では、各ファイルを探すためにコードを更新しなくても、実行時にアクセスできる一連のファイルを含む「リソース」パッケージを作成する別の方法はありますか?このフォルダをソースから分離して別の場所に保持する必要はありません。展開が複雑になるためです...誰かアイデアはありますか?

ありがとう

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

解決:

Androidは、実行時に利用できるようにするために、コンパイル時にリソースファイルのインベントリを作成していることに気付きました。したがって、これがおそらく進むべき道です。フォルダ内のファイルのリストを含むファイル(常に同じ名前でアクセスできるように)を書き込むステップをAntスクリプトに追加します。このようにして、利用可能なすべてのリソースファイルの名前を知ることができます。エドウィンに助けてくれてありがとう:)

4

1 に答える 1

2

[Eclipse ビルド パス] ダイアログ ボックスで、リソース フォルダーがソース フォルダーであることを確認します。次に、質問で言及した ClassLoader メソッドを使用してそれらをロードできます。

ここに画像の説明を入力

この手法を使用すると、ソース フォルダー内のすべてのサブフォルダーがパッケージと見なされます。したがって、リソースをロードするときは、必ずそれを考慮してください。

この手法は基本的に、このフォルダー内のすべての Java ファイルがコンパイルされ、配布フォルダーの下に配置されるようにします。その他のファイルは、このフォルダーから配布フォルダー (つまり、bin または classes フォルダー) に単純にコピーされます。

後で、プロジェクトを jar または war にパッケージ化するときに、このファイルがパッケージ化されたファイルに含まれていることを確認する必要があります。

于 2012-10-26T15:00:19.677 に答える