2012-10-11 18 views
6

Javaでディレクトリを作成しようとしています。存在する場合は、そのディレクトリとそのコンテンツを削除して新しいディレクトリを作成します。私は以下を実行しようとしていますが、ディレクトリは削除されません。新しいファイルがディレクトリに追加されます。ディレクトリを作成します。存在する場合は、ディレクトリとその内容を削除し、Javaで新しいディレクトリを作成してください。

File file = new File("path"); 
boolean isDirectoryCreated = file.mkdir(); 
    if (isDirectoryCreated) { 
     System.out.println("successfully made"); 
     } else { 
      file.delete(); 
      file.mkdir(); 
      System.out.println("deleted and made"); 
      } 

実行中のプロジェクトのディレクトリに実行時にこのディレクトリを作成しています。実行ごとに古いコンテンツを削除し、新しいコンテンツがこのディレクトリに存在する必要があります。アパッチへ

File file = new File("path"); 
boolean isDirectoryCreated = file.mkdir(); 

if (isDirectoryCreated) { 
     System.out.println("successfully made"); 

} else { 
     deleteDir(file); // Invoke recursive method 
     file.mkdir();  
} 


public void deleteDir(File dir) { 
    File[] files = dir.listFiles(); 

    for (File myFile: files) { 
     if (myFile.isDirectory()) { 
      deleteDir(myFile); 
     } 
     myFile.delete(); 

    } 
} 
+1

ディレクトリが空でない場合、ディレクトリを削除することはできません。ディレクトリ内のすべてのファイルを削除するために、ディレクトリに再帰的に移動します。 –

答えて

8
public static boolean deleteDir(File dir) { 
    if (dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i=0; i<children.length; i++) { 
      boolean success = deleteDir(new File(dir, children[i])); 
      if (!success) { 
       return false; 
      } 
     } 
    } 
    return dir.delete(); 
} 
5

..あなたはこのような何かを試すことができます。

import java.io.File; 
import java.io.IOException; 

import org.apache.commons.io.FileUtils; 

public class DeleteFolder { 

    public static void main(String[] args){ 
     try { 
      File f = new File("/var/www/html/testFolder1"); 
      FileUtils.cleanDirectory(f); //clean out directory (this is optional -- but good know) 
      FileUtils.forceDelete(f); //delete directory 
      FileUtils.forceMkdir(f); //create directory 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
6

おかげで、これは超簡単です - :

あなたが唯一のディレクトリを削除することができ、その後最初のディレクトリの内容を削除する必要が
関連する問題