JAVA/JSP

[Java] FTP 폴더 생성하기

folder #확인 #존재여부 #FTPClient #isExist #exists() #하위폴더 #만들기 #자바

안녕하세요, 배곧동개발자​ 입니다.

자바에서 FTP를 이용해 파일들을 관리하다보면 폴더를 새로 생성해야하는 경우도 있고, 새로만드는 폴더에 파일을 넣어야하는 경우도 있습니다.

이럴 때에 특정 폴더의 존재유무를 따져서 폴더를 생성해야 하는 경우가 생기지요.


1. exists 함수가 없다

File 을 쓰는 경우에는 간단하게 exists() 함수를 통해서 존재유무를 확인하고 없다면 mkdir()를 이용해서 만들어주면 되지만 FTP에서는 저 exists()함수가 존재하지 않습니다.

하지만 우리는 개발자입니다. 없다면 만들면 되요!


2. exists 대신 changeWorkingDirectory

대신, changeWorkingDirectory() 함수가 존재하지요! 이거를 활용해서 로직을 짜게되면-

public void CheckAndMakeDirectory(FTPClient ftp, String path) throws IOException{
    boolean isExist;
    isExist = ftp.changeWorkingDirectory(path);
    // 없으면 폴더 생성
    if(!isExist){
  ftp.makeDirectory(path);
    }
}

요렇게 만들 수 있습니다.

원래 폴더를 이동하는 함수인데, 이동이 불가능한 경우(폴더없음) 폴더를 생성해줌으로써 exists() 함수를 대체 할 수 있지요.


3. 사용 예시

그러면 위에 만든 함수를 어떻게 사용해야하는지 한번 알아보겠습니다.

ftp = new FTPClient(); // FTP Client 객체 생성
/*
FTP 정보 입력~ 불라불라~
*/
// 1. 먼저 폴더가 있는지 확인하고 없으면 폴더 생성
CheckAndMakeDirectory(ftp, "/BRIDGE/"+today_y);
CheckAndMakeDirectory(ftp, "/BRIDGE/"+today_y+"/"+today);
// 2. 그 뒤 파일 옮기기
ftp.storeFile("/BRIDGE/"+today_y+"/"+today+"/"+fileVO.getFilenm(), fis);

어렵지 않아요! 이런식으로 활용할 수 있습니다. 쉽죠?!


우리가 괜히 개발자인가요? 애초에 isExist()도 앞선 개발자가 만들어놓은 함수입니다!! 없으면 만들어 쓰자!

이만, 배곧동개발자 였습니다.

배곧동개발자

Recent Posts

[세븐나이츠 리버스] 쫄작 가이드 (기초편)

#세븐나이츠리버스 #쫄작 #가이드 #꿀팁 #제이브 그 옛날, 세나를 해보신 분들이라면 모를 수 없으나 이제 세븐나이츠…

3주 ago

[세븐나이츠 리버스] 최신 쿠폰 공유! 쿠폰 입력 방법! (5월15일)

1. 세븐나이츠 리버스 오늘, 2025년 5월 15일에 오픈한 세븐나이츠 리버스! 다들 시작하셨나요? 제이브를 뽑고싶은데 아직…

3주 ago

[CSS] 이미지가 빙빙 돈다? animation spin

#css #spin #animation #spin 1. 이미지가 빙빙돈다! 어? 이게 뭐지? 이미지가 빙빙 돕니다. 나 이거…

1개월 ago

[node.js] npm.ps1 파일을 로드할 수 없습니다

#노드js #nodejs #에러 #오류 #npm 1. npm.ps1 Error node js 를 설치 후 npm을 이용하려…

2개월 ago

[MSSQL] 넓은 영어, 띄어쓰기 영어 입력되는 현상 (전각입력/문자폭)

#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…

3개월 ago

[이미르] 다니아믹 키 확실한 해결방법 (커스텀토큰/접속불가)

#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…

3개월 ago