如何使用完整文件路径访问目录?

时间:2016-09-19 01:58:07

标签: java file

所以,我正在编写一个需要遍历目录中所有文件的程序,这就是我目前所拥有的。

import java.io.File;
import java.util.Scanner;

public class Main {

   public static void main(String args[]) throws Exception {

      VotingData v = new VotingData();

      Scanner in = new Scanner(System.in);

      System.out.print("Please input a directory.");
      String input = in.next();

      File dir = new File(input);
      File[] directoryListing = dir.listFiles();

      if (directoryListing != null) {
         for (File child : directoryListing) {
            v.merge(RecordReader.readRecord(child.toString()));
         }
      } 

      else {
       // do nothing right now.  
      }

      String[] sub1 = {"Montgomery","Miami"};
      TextualRepresentation.toString(v.getAllResults());
      TextualRepresentation.toString(v.getCountyResults("Montgomery"));
      TextualRepresentation.toString(v.getCountyResults("Miami"));
      TextualRepresentation.toString(v.getCountyResults("Butler"));
      TextualRepresentation.toString(v.getSubsetResults(sub1));

   }

} 

项目的文件路径是C:\ Users \ Jarrett Willoughby \ Documents \ School \ CSE201 \ Project Stuff。

我尝试的输入是" C:\ Users \ Jarrett Willoughby \ Documents \ School \ CSE201 \ Project Stuff \ TestFiles" ,但它似乎不起作用。但是,当输入只是" TestFiles"它确实。我希望能够访问不同文件夹中的目录,但由于某种原因,长方法不起作用。

编辑:我不知道错误是什么。我所知道的就是当我把" TestFiles"进入扫描仪它工作正常,当我尝试完整的文件路径它不会崩溃,但它不会产生我想要的结果。

1 个答案:

答案 0 :(得分:1)

Scanner#next()读取以空格分隔的(默认情况下)字符串标记。

您的意见:

C:\Users\Jarrett Willoughby\Documents\School\CSE201\Project Stuff\TestFiles

包含空格,因此next()只读取" C:\ Users \ Jarrett"。

您可以改为使用Scanner#nextLine()

将来,要自行调试,要么在调试器中单步执行以查看变量的值,要么添加打印输出以进行验证,例如:这会让你快速找到解决方案:

System.out.println("input was " + input);