2017-02-28 51 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

相關問題