[JAVA] 서버에 있는 파일 재처리 후 파일명 변경하기

yeonjoo913·2023년 12월 6일

JAVA

목록 보기
16/19

서버에 올라간 파일을 다시 서비스 로직을 태운 후, 완료된 파일의 경우 파일명을 변경해야했다.
원본의 경우 물리 서버에 백업본을 두고 있고, 컨테이너 내부 파일만 파일명을 변경할 것이다.

특정 디렉토리 파일 리스트 가져오기

  • Java에서 File클래스를 사용해서 특정 경로의 파일을 가져올 수 있다.
    • list() : 디렉토리에 있는 파일들의 이름 목록 반환
    • listFiles() : 디렉토리에 있는 파일 목록을 반환
    • listFiles(FileFilter filter) : 디렉토리에 있는 파일 목록을 필터링하여 반환
// 파일 경로
File dir = new File(resourcesLocation);
// 해당 경로 하위 파일 목록
File[] fileNameList = dir.listFiles(new FileFilter() {
    @Override
    public boolean accept(File dir) {
        return !dir.getName().endsWith("_end.xlsx") && !dir.getName().startsWith(".");
    }
});

파일명 변경하기

  • Java에서 File클래스의 renameTo()를 사용하여 이름을 변경할 수 있다.
    • getAbsolutePath() : 파일의 절대 경로(현재 실행중인 디렉토리 경로)를 리턴
// 파일명 변경
String newFileName =file.getAbsolutePath().split("\\.")[0];
newFileName = newFileName + "_end.xlsx";
file.renameTo(new File(newFileName));

테스트 진행

해당 로직은 스케쥴러를 사용해 돌아가고 있다.
개발 서버 특정 디렉토리에 파일을 올려둔뒤, 컨테이너로 파일을 전송해서 테스트했다.

host → container로 파일 전송 명령어

docker cp host경로 컨테이너ID:경로

ex) docker cp /etc/work/test.xlsx 123545:/etc/work


Reference.
https://jjunn93.com/entry/Java-특정-디렉토리-파일-목록-가져오기-listlistFiles

profile
주니어 백엔드 개발자. 까먹는다 기록하자!

0개의 댓글