본문 바로가기
IT/JAVA

[JAVA/자바] 자바 - 파일이동 및 삭제

by 청바지 입고 개발자 2022. 3. 10.
반응형

오늘은 자바 프로그램을 이용해서 서버에 있는 파일을 다른 폴더로 이동하는 방법 및 특정 경로의 파일을 삭제하는 방법에 대해서 알아보려고 한다. 

 

 

자바 파일이동 방법 

해당 명령은 MOVE명령이므로 파일 COPY가 아니라 파일이 MOVE 된다.(잘라내기) 

보통 업무에서는 외부기관 또는 연계 시스템으로부터 업무 파일을 수신 후 프로그램으로 업무 처리 후, 처리된 파일은 이동하여 처리된 디렉토리로 옮기는 방식으로 많이 사용을 하는데 이런 업무 패턴에서 사용하면 좋을 것 같다.

자바 API DOC 문서 Spec

 

자바 파일 이동 프로그램 소스 

public class BasicTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
		System.out.println("===========Start Test==========");
		
		//MOVE 전  대상 파일
		Path oldFile = Paths.get("C:/test/sample.txt");
		
		//MOVE 후  대상 파일 
		Path newFile = Paths.get("C:/test/after_move/sample.txt");
		
		Files.move(oldFile, newFile, StandardCopyOption.ATOMIC_MOVE);
		
		}catch(IOException E) {
			
		}

 

제공 옵션 

Files.move 메서드는 아래와 같이 두 가지 옵션을 제공한다.

StandardCopyOption.REPLACE_EXISTING : MOVE할 대상 폴더가 존재하고 기존의 파일이 존재할 경우 덮어쓴다.
StandardCopyOption.ATOMIC_MOVE : 원자적 파일 이동 , 기존에 파일이 존재할 경우 IOExeception을 throw 합니다.

 

자바 파일 삭제 방법

특정 디렉토리 내의 파일을 삭제하기 위해서는 아래와 같은 코드로 삭제가 가능하다.

일반적으로 업무에서는 외부기관 또는 연계 시스템으로부터 받은 수신 파일을 서버 프로그램을 통해서 DB 파일 데이터를 등록 후 해당 수신 파일을 삭제하는 용도로 자주 사용된다. 

 

또는 주기적으로 배치 프로그램이나 OS의 Crontab과 같은 명령을 사용하여 주기적으로 파일을 삭제하여 서버의 용량을 적절하게 유지하기 위해 파일 삭제 처리 시 사용할 수 있다. 

 

자바 특정 디렉토리 파일 삭제 프로그램 소스 

package basicJava;

import java.io.File;

public class FileDelete {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//file객체 생성
		File file = new File("C:/test");
		//파일 존재여부 체크 
		if(file.exists()) {
			//해당 디렉토리에 있는 파일 목록을 조회함 
			File[] files= file.listFiles();
			
			for(int i = 0 ; i < files.length ; i++) {
				if(files[i].delete())				{
					System.out.println("파일삭제 성공, 파일명 : " + files[i].getName()) ;
				}else {
					System.out.println("파일삭제 실패");
				}
			}
			
		}else {
			System.out.println("파일이 존재하지 않습니다.");
		}
	}

}

 

파일 이동 및 삭제 작업은 특히 배치 업무에 많이 사용될 수 있는데 위 방법을 기초로 적절히 응용해서 사용하면 좋을 것 같다. 

 

반응형

댓글