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

您可以使用File#isDirectory方法来测试 a 是否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 回答