JAVA 파일 삭제 delete() 파일 존재 확인 exists()

지정한 경로에 파일을 삭제하기 위해 delete() 함수를 사용합니다.

delete() 함수를 사용하여 파일 삭제에 성공하면 true를 실패하면 false를 반환합니다.

delete()를 사용하여 파일을 삭제하기 전에 지정한 경로에 파일이 존재하는지 판단을 해야 합니다.

파일 존재 확인은 exists() 함수를 사용합니다.

파일이 존재하면 true를 존재하지 않으면 false를 반환합니다.

 

샘플 소스

import java.io.File;

class fileTest1{

  public static void main(String args[]){

    // 경로와 파일명 지정
    File file = new File("c:¥¥temp¥¥logFile.log");

    // 지정한 경로에 파일이 존재하는 지 확인
    // 지정한 경로에 파일이 존재하는 경우 
    if (file.exists()){

      // 파일 삭제 성공시
      if (file.delete()){

        System.out.println("파일을 삭제 성공");

      //파일 삭제 실패시
      }else{
        System.out.println("파일 삭제 실패");
      }

    // 지정한 경로에 파일이 존재안하는 경우 
    }else{
      System.out.println("파일이 없습니다.");
    }
  }
}

 

폴더안에 파일이 한개만 있는 경우도 있지만 여러개 파일이 있는 경우도 있습니다.

여러 파일을 모두 삭제하고 싶은 경우를 예제로 살펴보겠습니다.

import java.io.File;
 
// 재귀함수를 사용해 모든 파일을 삭제
class FileClass {
 
    public static void fileClass(File dir) {        
        //폴더 안에 있는 파일을 삭제
        if(dir.exists()) {
            
            if(dir.isFile()) {
                if(dir.delete()) {
                    System.out.println("파일 삭제");
                }
            } else if(dir.isDirectory()) {
                File[] files = dir.listFiles();
                
                if(files == null) {
                    System.out.println("폴더 안에 파일이 존재하지 않습니다.");
                }
                //반복문을 사용해 파일수 만큼 반복
                for(int i=0; i<files.length; i++) {
                    
                    //파일 존재 확인
                    if(files[i].exists() == false) {
                        continue;
                    //파일이 존재하는 경우 재귀적으로 반복
                    } else if(files[i].isFile()) {
                        fileClass(files[i]);
                        System.out.println("파일 삭제2");
                    }        
                }
            }
        } else {
            System.out.println("폴더가 존재하지 않습니다.");
        }
    }
}
 
public class FileDelete {
 
    public static void main(String[] args) {
        FileClass fc = new FileClass();
        File dir = new File("/Users/Shared/java/");
        FileClass.fileClass(dir);
    }
 
}

 

File 클래스로 파일을 삭제할 폴더를 지정했습니다.

fileClass에서 삭제처리를 진행합니다.

지정한 폴더에 파일이 있는 경우에는 listFiles 메서드에서 취득한 파일수 만큼 반복처리를 실행해 모든 파일을 삭제합니다.

댓글