'sun.net.ftp.FtpClient'에 해당되는 글 1

  1. 2008.12.01 FTP로 원격 디렉토리를 가져오는 방법(Ruby,Groovy,Javascript)
 

FTP로 원격 디렉토리 리스트를 가져오는 것을 해보고 싶었다.
무엇보다 스스로의 성취감도 중요하겠지만,
각 스크립트 언어별로 얼마나 다른지 확인해 보고 싶기도 했다.

// groovy script

import sun.net.ftp.FtpClient
import java.io.BufferedReader
import java.io.inputStreamReader

def getList(is){
 br = new BufferedReader(new InputStreamReader(is))
 while ( (result = br.readLine()) !=  null) list += result + "\r\n"
 return list
}

ftp = new FtpClient()
ftp.openServer('serverurl')
ftp.login('loginid','password')
ftp.cd('/home/loginid/test')
is = ftp.list()
println getList(is)


/* Javascript(Rhino) */

importClass(Pacakges.sun.net.ftp.FtpClient)
importClass(java.io.BufferedReader)
importClass(java.io.InputStreamReader)

function getList(is){
 var result = 0;
 var list = '';
 var br = new BufferedReader(new InputStreamReader(is));
 while( (result = br.readLine()) != null) list += result + "\r\n";
 return list;
}

var ftp = new FtpClient();
ftp.openServer('serverurl');
ftp.login('loginid','password');
ftp.cd('/home/loginid/test');
is = ftp.list();
print( getList(is));


// ruby script

require 'net/ftp'

ftp = Net:FTP.new('serverurl','loginid','password')
ftp.chdir('/home/loginid/test')
list = ftp.list()
puts list


전체적으로 보면 Ruby가 훨씬 간결하고 직관적인 것을 알 수가 있었다.
또한, Java 기반인 두 스크립트(Javascript, Groovy)는 사용방법이 같아서 소스가 거의 같았다.
(내가 아직 두 스크립트를 간결하게 사용하는 법에 미숙하다)

스크립트는 컴파일 안해도 되고 바로 결과 확인이 되니까 재미있는 것 같다. :)

댓글을 달아 주세요