2012-10-11 2 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

감사합니다 -을 :

관련 문제