Javaでは、File
クラスは、ファイルシステム上の「既存の」ファイルを表す必要はありません。例:
File f = new File("some_unknown_unexisting_file.bob");
System.out.println(f.exists()); // most likely will print 'false'
また、クラスはファイルを現在の作業ディレクトリから解決します。あなたは、あなたの場合は
System.out.println(new File(".").getAbsolutePath());
で、このディレクトリを得ることができれば、私はとFile[]
配列取得を示唆している:フォルダではありませんFile
オブジェクトの配列を返します
File[] files = new File("icons").listFiles(new FileFilter() {
@Override
public boolean accept(File f) {
return !f.isDirectory() && f.canRead();
}
});
for (File f : files) {
System.out.println(f.getAbsolutePath());
}
をし、あなたは読書のために開くことができます(これは必ずしも真実ではありませんが、あなたの場合は問題ありません)。
しかし、もしあなたがlist()
を使用するを持っている場合、これは同等です:
File parent = new File("icons");
String[] fileStr = parent.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File f = new File(dir, name);
return !f.isDirectory() && f.canRead();
}
});
for (String f : fileStr) {
System.out.println(new File(parent, f).getAbsolutePath());
}
また、ファイル(String[]
)のリストで、あなたが使用してアイコンを作成することができます
String filename = fileStr[i]; // some file name within the array
ImageIcon icon = new ImageIcon("icons" + File.separator + filename);
をまたはあなたのファイルリスト(File[]
)であれば、クリーナーです。
File file = files[i]; // some file within the File[] array
ImageIcon icon = new ImageIcon(file.getAbsolutePath());
幸運。
アイコンのある引用符の内側にディレクトリへのパスを入れてみてください。 –
あなたの質問は何か分かりません。投稿したコードは、配列として "icons"ディレクトリにあるすべてのファイルの名前を返します。「個々のファイルの内容はどうやって読むのですか?」という質問はありますか? – jacobm
もう何が質問ですか? –