2017-07-17 337 views
0

我正在使用Java 1.8。我想,如果不存在,使用這種方法來創建一個文件夾:如何確保文件夾名稱或文件夾路徑有效?

private void createDirIfNotExists(String dirChemin) { 
     File file = new File(dirChemin); 
     if (!file.exists()) { 
      file.mkdirs(); 
     } 
    } 

這工作時,我給它正確的路徑,例如這將創建一個文件夾,如果不存在

createDirIfNotExists("F:\\dir") 

但是,當我寫一個不正確的路徑(或名稱),它沒有給我任何東西即使是一個錯誤!例如:

createDirIfNotExists("F:\\..?§;>") 

所以我想提高我的方法,所以它可以創建文件夾如果要確保我的路徑是正確的不存在它,否則它應該給我一個錯誤消息。

+5

注意'如果失敗,mkdirs'返回'false',則可以使用該值。 – Berger

+4

https://docs.oracle.com/javase/7/docs/api/java/io/File.html#mkdirs() – Compass

+2

[java正則表達式匹配文件路徑](https:// stackoverflow。 com/questions/4489582/java-regular-expression-to-match-file-path) – azro

回答

1

mkdirs()還創建了父目錄這個File表示的路徑。

javadocsmkdirs()

創建此抽象路徑名指定的目錄,包括 必需但不存在的父目錄。請注意,如果這個 操作失敗,它可能已經成功創建了一些 必需的父目錄。

javadocsmkdir()

創建此抽象路徑名指定的目錄。

實施例:

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

將產生false用於第一[和沒有目錄將被創建]和true用於第二,你將已經創建non_existing_dir/someDir

+1

https://stackoverflow.com/questions/9820088/java-io-file/9820115#9820115 – JajaDrinker

+0

你也可以使用'f.exists();' –