2011-03-18 118 views
0

我試圖依次創建並刪除一個目錄。但是,似乎刪除目錄不起作用。創建後無法刪除目錄

有沒有人知道爲什麼?這是由於文件系統沒有在Java中刷新?

public boolean createDirectory(File file) { 
    // Delete Directory if alreday exists 
    if (file.exists()) { 
     deleteDirectory(file); 
    } 
    boolean status = file.mkdirs(); 
    if (status) { 
     System.out.println(" Successfull of creating Directory " + file.getPath()); 
    } 
    return status; 
} 

public boolean deleteDirectory(File dir) { 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i = 0; i < children.length; i++) { 
      File delFile = new File(dir, children[i]); 
      if (!delFile.exists()) { 
       System.out.println("Cannot find directory to delete" + delFile.getPath()); 
       return false; 
      } 
      boolean success = deleteDirectory(delFile); 
      System.out.println(delFile + ": success? " + success); 
      if (!success) { 
       System.out.println("failure during delete directory" + delFile.getPath()); 
       return false; 
      } 
     } 
     // The directory is now empty so now it can be smoked 
     return dir.delete(); 
    } 
} 

回答

3

如果這是在Windows上運行,那麼問題通常是Windows將不會刪除任何進程是否是「用」一個目錄 - 即具有與目錄中的文件(或一個其兒童)打開,或者將該目錄(或其子目錄之一)作爲其當前工作目錄。