1

jar パッケージ内のディレクトリに含まれるファイルのリストを取得したいと考えています。「画像」フォルダーがあり、その中にImagesそのディレクトリからすべての画像をロードするクラスがあります。

以前は を使用しMyClass.class.getResourceAsStream("filename");てファイルを読み取っていましたが、ディレクトリを読み取るにはどうすればよいですか?

これは私が試したものです:

System.out.println(Images.class.getResource("").getPath());
System.out.println(new File(Images.class.getResource("").getPath()).listFiles());

Images.class.getResourceで作業するFile必要があり、を受け入れるコンストラクターがないため、試してみましたInputStream

コードは生成します

file:/home/k55/Java/MyApp/dist/Package.jar!/MyApp/images/
null

そのため、ファイルを一覧表示するフォルダーを見つけていますが、ファイルを一覧表示できません。

他のフォーラムで、実際には jar アーカイブ内のフォルダーにこの方法を使用できないと読んだことがありますが、どうすればこれを達成できますか?

更新:可能であれば、使用せずにファイルを読みたいZipInputStream

4

1 に答える 1

0

それは簡単にはできません。

するべきこと:

  1. jar ファイルのパスを取得します。Images.class.getResource("/something/that/exists").getPath()
  2. 「!/something/that/exists」を削除します。
  3. Zip ファイル システムを使用して、Jar ファイルを参照します。ちょっとしたハッキン​​グです。
于 2013-10-24T08:35:40.590 に答える