2013-03-24 98 views
0

我有一個程序需要一個文件指向某個文件夾。然後我需要製作兩個單獨的目錄。例如,假設我有一個指向文件夾Base的文件庫。然後我想創建兩個目錄dir1和dir2。創建多個文件目錄

我知道你做到以下幾點:

//Called in constructor 
File base = new File (baseFileLocString); 

//Make directories 
File dir1 = new File (base.getAbsoluteFilePate() + "/dir1"); 
dir1.mkdir(); 

File dir2 = new File (base.getAbsoluteFilePate() + "/dir2"); 
dir2.mkdir(); 

我不喜歡,雖然這種方式。理想情況下,我可以使用base並創建目錄,而不必創建新的Files。我覺得應該有一個更有效的方法來做到這一點。是這種情況還是不是?

+1

一個例外,但目錄是一個類型的文件 - 有什麼問題?我的意思是,你可以用一種實用方法來包裝它,或使用現有的一種,如Apache Commons,但... – 2013-03-24 01:44:44

+0

我同意@DaveNewton。另外你應該使用新的文件(base,「dir1」)。檢查javadoc。 – DiogoSantana 2013-03-24 01:47:32

+0

我想這裏沒有真正的交易。我只是覺得它看起來有點醜,看起來不太理想。也許這比任何東西都更多的語義。 要創建這兩個額外的'File'對象似乎很浪費。 – 2013-03-24 01:49:12

回答

1

有一種替代

Files.createDirectory(Paths.get(base.getAbsoluteFilePath(), "dir1")); 

除了它比File.mkdir更好,因爲如果出錯的mkdir沒有expalnation返回false和createDirectory拋出這也解釋發生了什麼

1

而不是

File dir1 = new File (base.getAbsoluteFilePath() + "/dir1");

你可以使用

File dir1 = new File (base, "dir1");

看起來更好,但性能將保持不變