在Java中创建目录的问题

时间:2009-07-19 13:03:32

标签: java directory

我正在尝试用Java创建一个目录。我想我已经正确提供了所有必要的东西,以便我创建目录,但它没有创建。您可以从下面的代码和相应的输出中看到,我构成新目录路径的每个元素都应该是正确且有效的。 但是,似乎tDir.mkdir();没有做任何事情,因此success变量始终为false。我不明白为什么。提前谢谢。

System.out.println("experimentDir: " + experimentDir);
System.out.println("item.getName(): " + item.getName());
System.out.println("dirName: " + dirName);
String tDirStr = experimentDir + "/" + item.getName() + "All/" 
    + dirName + "DataAll";
System.out.println("tDirStr: " + tDirStr);
File tDir = new File(tDirStr);
if (tDir.exists()) {
      System.out.println("EXISTS!!!");
} else {
      boolean success = tDir.mkdir();
      if(success) {
            System.out.println("Dir created");
      } else {
            System.out.println("No dir created!");
      }

输出:

 experimentDir: /home/Documents/datasets/test-experiments
 item.getName(): PosNegReviews
 dirName: test
 tDirStr: /home/Documents/datasets/test-experiments/PosNegReviewsAll/testDataAll
 No dir created!

3 个答案:

答案 0 :(得分:3)

如果你想创建多个(嵌套)目录,你应该使用mkdirs()(注意 s )。

答案 1 :(得分:1)

您可能需要创建不存在的任何父目录。尝试File.mkdirs()。

答案 2 :(得分:0)

public class Test1{
    public static void main(String[] args)
    {
        String path="c:\\dir1\\dir2\\dir3\\dir4";
        File dir=new File(path);
        if(!dir.exists()){
            dir.mkdirs();
        }
    }
}

上面的代码将在C:\ dir1 \ dir2 \ dir3中创建dir4。如果父文件夹不存在,那么它也将创建。