0

パスのファイル (ファイルとフォルダー) のリストを含む文字列配列があります。

File directory = new File(path);
String[] fileNames = directory.list();

ファイルの内容を読み取ろうとすると:

for (int i = 0; i < fileNames.length; i++) {
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(
           new FileInputStream(path + "\\" + fileNames[i]), "UTF-8"));

ファイルがフォルダーの場合、FileNotFoundException が発生します。ファイル名がフォルダーに属しているかどうかを事前に知るにはどうすればよいですか。おそらくファイルのサイズによるものでしょうか?

4

4 に答える 4

4

メソッドを使用して、 aが であるFile#isDirectoryかどうかをテストできます。filedirectory

File file = new File("test");
System.out.println(file.isDirectory());

File#listFilesまたは、代わりにメソッドを使用できます。filesディレクトリ内のみを返します。そうすれば、自分fileが aかどうかを確認する必要がなくなりますdirectory

File directory = new File(path);
String[] fileNames = directory.listFiles();
于 2012-10-20T08:30:08.707 に答える
3

file.isDirectory()あなたが探しているものです。

于 2012-10-20T08:30:07.977 に答える
2

クラスのisDirectory() メソッドを使用できますFile

于 2012-10-20T08:31:42.367 に答える
2

このようにコードを使用できます

for (int i = 0; i < fileNames.length; i++) {
        if(fileNames[i].isFile()){
        BufferedReader br = new BufferedReader(new InputStreamReader(
           new FileInputStream(path + "\\" + fileNames[i]), "UTF-8"));
}
}
于 2012-10-20T08:35:55.823 に答える