2017-02-28 52 views
-1
import java.io.File; 
import java.io.IOException; 

public class TestFile { 
    public static void main(String[] args) { 
     String separator = File.separator; 
     String filename = "myFile.txt"; 
     String directory = "mydir1" + separator + "mydir2"; 

     File f = new File(directory,filename); 
     if (f.exists()) { 
      System.out.print("filename:" + f.getAbsolutePath()); 
      System.out.println("filesize:" + f.length()); 
     } else { 
      f.getParentFile().getParentFile().mkdir(); 
      try{ 
       f.createNewFile(); 
      }catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

我所要做的是创建该文件夹下的“mydir1”文件“MYFILE.TXT”,但控制台说:“该系统找不到指定的路径” ,有人能告诉我我哪里做错了吗?提前致谢。爪哇 - IOException异常:系统找不到指定的路径

+0

这是一种在mydir1中创建文件的无比复杂的方式。为什么还要用'mydir2'?你的堆栈跟踪会给你很多信息**(应该包含在你的问题中!)**。我怀疑'f.getParentFile()。getParentFile()。mkdir();'是导致问题的原因,但由于您有3个操作,因此可能不清楚哪一个是问题。 Instinct告诉我“我怎么能得到一个不存在的文件的父母?”,但这可能只是我的可疑性质,缺乏最近的Java IO工作;-) – John3136

+0

父目录是否存在? – haifzhan

回答

1

它看起来像你只创建mydir1而不是mydir2

我可以建议,而不是

f.getParentFile().getParentFile().mkdir(); 

尝试类似:

f.getParentFile().mkdirs(); 

File.mkdirs将尝试创建所有必需的parrent目录。

+0

所以如果我想要在指定的目录中创建一个新文件,那么我必须找到与我放入File f = new File(目录,文件名)的目录路径完全相同的目录路径,否则我无法设法更改路径通过f.getParentFile()。getParentFile()。mkdir()正确?对不起我的英文不好,希望你明白我在说什么 – User3301

+0

你将无法在目录中创建文件。你应该首先创建目录结构。 – Kiryl

+0

好吧,现在我明白了。谢谢你的解释。 – User3301

相关问题