【问题标题】:Can I know if a file is a folder?我可以知道文件是否是文件夹吗?
【发布时间】:2012-10-20 08:29:18
【问题描述】:

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

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。 我以前怎么知道文件名是否属于文件夹。也许是文件的大小?

【问题讨论】:

    标签: java file bufferedreader filenotfoundexception


    【解决方案1】:

    您可以使用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();
    

    【讨论】:

      【解决方案2】:

      file.isDirectory() 就是你要找的东西。

      【讨论】:

        【解决方案3】:

        你可以使用File类的isDirectory() method

        【讨论】:

          【解决方案4】:

          你可以像这样使用你的代码

          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"));
          }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-29
            • 2010-11-07
            • 1970-01-01
            • 1970-01-01
            • 2013-05-31
            • 2012-05-28
            相关资源
            最近更新 更多