folder #확인 #존재여부 #FTPClient #isExist #exists() #하위폴더 #만들기 #자바
포스팅 목차 바로가기
안녕하세요, 배곧동개발자 입니다.
자바에서 FTP를 이용해 파일들을 관리하다보면 폴더를 새로 생성해야하는 경우도 있고, 새로만드는 폴더에 파일을 넣어야하는 경우도 있습니다.
이럴 때에 특정 폴더의 존재유무를 따져서 폴더를 생성해야 하는 경우가 생기지요.
File 을 쓰는 경우에는 간단하게 exists() 함수를 통해서 존재유무를 확인하고 없다면 mkdir()를 이용해서 만들어주면 되지만 FTP에서는 저 exists()함수가 존재하지 않습니다.
하지만 우리는 개발자입니다. 없다면 만들면 되요!
대신, changeWorkingDirectory() 함수가 존재하지요! 이거를 활용해서 로직을 짜게되면-
public void CheckAndMakeDirectory(FTPClient ftp, String path) throws IOException{
boolean isExist;
isExist = ftp.changeWorkingDirectory(path);
// 없으면 폴더 생성
if(!isExist){
ftp.makeDirectory(path);
}
}
요렇게 만들 수 있습니다.
원래 폴더를 이동하는 함수인데, 이동이 불가능한 경우(폴더없음) 폴더를 생성해줌으로써 exists() 함수를 대체 할 수 있지요.
그러면 위에 만든 함수를 어떻게 사용해야하는지 한번 알아보겠습니다.
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()도 앞선 개발자가 만들어놓은 함수입니다!! 없으면 만들어 쓰자!
이만, 배곧동개발자 였습니다.
#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…
#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…
#레전드오브이미르 #작업장 #쌀먹 #중국 #매크로 #대기열 1. 운영 문제 있네? 이제 오픈 2주차에 들어온 위메이드의…
#레전드오브이미르 #엠틱 #마나회복력 #스토리덱 1. 마나가 너무 부족해! 레전드 오브 이미르는 스킬 위주의 액션 게임이라고…
#레전드오브이미르 #파괴가남긴것 #시구르드 #19-19 #위치 1. 파괴가 남긴 것 레전드 오브 이미르 메인퀘스트 19-19인 "파괴가…
#레전드오브이미르 #트롤의비밀상자 #트롤의유적상층 #보물상자 #위치 1. 트롤의 비밀 상자 이번에 알아 볼 의뢰게시판 의뢰는 바로…