我可以知道文件是否是文件夹吗?

时间:2012-10-20 08:29:19

标签: java file bufferedreader filenotfoundexception

我有一个String数组,其中包含路径的文件(文件和文件夹)列表:

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 个答案:

答案 0 :(得分:4)

您可以使用File#isDirectory方法测试file是否为directory

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

或者,您可以使用File#listFiles方法。它只返回目录中的files。这样,您就不必检查file是否为directory

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

答案 1 :(得分:3)

file.isDirectory()正是您要找的。

答案 2 :(得分:2)

您可以使用File班级的isDirectory() method

答案 3 :(得分: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"));
}
}