2020년 4월 17일 금요일

java FTP로 파일 존재확인하기

아래 소스는 프레임워크에서 만들었던 소스 입니다.
최종적으로 뒤에 . 으로 찾아 파일이 있으면 200 코드 값으 주는걸로 만들어 보았습니다.
참고용으로 쓸만한지 모르겠군... 

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

static String ip = "127.0.0.1";
static String port = "21";
static String id = "ggmario";
static String password = "ggmario";
FTPClient ftpClient;
FTPClient ftp = new FTPClient();

String tmp = vo.getFile_name(); //에디터에 url 주소 입력 값
String arrTmp[] = null;
arrTmp = tmp.split("\r\n|\n|\r");  //줄바꿈 처리

if(0 < arrTmp.length){
//ftp형태로 파일 존재 여부 체크 시작
boolean isLogin = false;
ftp.setControlEncoding("UTF-8");
ftp.connect(ip, Integer.parseInt(port));
isLogin = ftp.login(id, password);// ftp 로그인

if(!isLogin){
System.out.println("ftp 서버에 로그인하지 못했습니다.");
}else{
System.out.println("ftp 서버에 로그인 하였습니다.");

String sTmp4 = arrTmp[i];

String baseName = FilenameUtils.getBaseName(sTmp4);//파일 명만 가져옴
String extension = FilenameUtils.getExtension(sTmp4);//파일 확장자만 가져옴
String fullPath = FilenameUtils.getFullPath(sTmp4);//URL 디렉토리만 가져옴
String fullPathEnd = FilenameUtils.getFullPathNoEndSeparator(sTmp4);//URL 디렉토리만 가져옴 뒤에 / 제거
System.out.println("prefi1x=="+fullPathEnd);

ftp.cwd("/www.test.or.kr/webapp"+"");

FTPFile[] files = ftp.listFiles(null);

if(ftp.getReplyCode() == 226){  /*550 디렉토리 오류*/
for(int ii=0; ii<files.length; ii++){
String fileName = files[ii].getName();
String sTmp3 = sSplitUrl[1];
//String extension = fileName.substring(fileName.lastIndexOf("."));

String fileName1 = sTmp3.substring( sTmp3.lastIndexOf('/')+1, sTmp3.length() );
//String fileNameWithoutExtn = fileName1.substring(0, fileName1.lastIndexOf('.'));
if(fileName.equals(fileName1)){
vo.setFile_check(200); //성공시 코드 값
}
}
}
}
}

댓글 없음:

댓글 쓰기