2015-05-25 60 views
0

我試圖讓它儘可能簡單。使用java.io.File在Eclipse中創建目錄/目錄

實施例:

File f = new File("non_existing_dir/someDir"); 
System.out.println(f.mkdir()); 
System.out.println(f.mkdirs()); 

mkdir()mkdirs()和返回兩個false°_°。這兩個工作(創建目錄),如果我使用雙反斜線\\(如"\\non_existing_dir\\someDir"但是:

,如果我以後做.toURI()我得到:file:/Users/MyName/Desktop/%5Cnon_existing_dir%5CsomeDir/

,如果我做.getPath()我收到:\non_existing_dir\someDir

如果我這樣做.getCanonicalPath()我收到:/Users/MyName/Desktop/\non_existing_dir\someDir



所以我想有這個,而不是重新sults:

.toURI()與接收:file:/Users/MyName/Desktop/non_existing_dir/someDir/

.getPath()接收:/non_existing_dir/someDir

並用.getCanonicalPath()接收:/Users/MyName/Desktop/non_existing_dir/someDir


在此先感謝大家。

+1

平臺獨立的方式是使用'File.separator'。 – ares

+0

我正在使用Linux 12.它的輸出如你所料 –

回答

1

如果non_existing_dir不存在,您可以檢查getParentFile()並使用mkdir()創建它。

也避免操作系統與File.separator之間的問題。

String filename = "non_existing_dir" + File.separator + "someDir"; 

File f = new File(filename); 
if (!f.exists()) { 
    if (!f.getParentFile().exists()) { 
     // make the dir 
     f.getParentFile().mkdir(); 
    } 
    f.mkdir(); 
} 
+1

非常感謝:-)它現在有效。並感謝其他人也如此迅速地評論我的問題。 – Aerox