导读:
$";
/**
* Log stream
*/
private static Logger log = Logger.getLogger(myFtp.class);
/**
* Standard main()
*
* @param args standard args
*/
public static void main(String[] args) {
String host = "www.ftpserver.com";
String user = "username";
String password = "×××××××××";
//Logger.setLevel(Level.ALL); // 设置debug信息是否显示,还是屏蔽了吧,好多呀。
FTPClient ftp = null;
//要获取的文件名
String filename = "雍正王朝";
//处理时间问题
long nCurrentTime = System.currentTimeMillis();
long nYellowTime ;
nYellowTime = nCurrentTime - 24*60*60*1000; //换算成毫秒后减去一天的时间。
Date utilDate = new Date(nYellowTime);
//Calendar用于获取指定的时间项(字段) 本段在此程序中没什么用,只是为了学习
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(nCurrentTime);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; //注意:返回的月份是基于0的!
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println("Current date is: "+ year + "年" + month + "月" + day + "日");
System.out.println("Current time is: "+ hour + "时" + minute + "分" + second + "
秒");
//SimpleDateFormat用于格式化日期和时间
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String szDatetime1 = df.format(utilDate);
System.out.println("Yellow datetime is: "+ szDatetime1);
try {
// set up client
ftp = new FTPClient();
ftp.setRemoteHost(host);
ftp.setControlEncoding("GB2312"); //设置可以访问中文路径
FTPMessageCollector listener = new FTPMessageCollector();
ftp.setMessageListener(listener);
// connect
log.info("Connecting");
ftp.connect();
// login
log.info("Logging in");
ftp.login(user, password);
// set up passive BINARY transfers 设置ftp传输模式的
log.debug("Setting up passive, BINARY transfers");
ftp.setConnectMode(FTPConnectMode.PASV);
ftp.setType(FTPTransferType.BINARY);
/*// get directory and print it to console
log.debug("Directory before put:");
String[] files = ftp.dir(".", true);
for (int i = 0; i
log.debug(files[i]);
// copy file to server
log.info("Putting file");
ftp.put("test.txt", "test.txt");
// get directory and print it to console
log.debug("Directory after put");
files = ftp.dir(".", true);
for (int i = 0; i
log.debug(files[i]);
*/
// copy file from server
log.info("Getting file");
ftp.chdir("mov//国产片//雍正王朝"); //进入指定的目录
filename = filename + szDatetime1;
System.out.println("Current is: "+ filename);
ftp.get(filename + ".rm" , "01.rm"); //获取指定的文件名,第一个参数是本地名,
第二个参数才是远端文件名
/*
// delete file from server
log.info("Deleting file");
ftp.delete("test.txt");
// get directory and print it to console
log.debug("Directory after delete");
files = ftp.dir("", true);
for (int i = 0; i
log.debug(files[i]);
*/
// Shut down client
log.info("Quitting client");
ftp.quit();
String messages = listener.getLog();
log.debug("Listener log:");
log.debug(messages);
log.info("Test complete");
} catch (Exception e) {
log.error("myftp failed", e);
}
}
/**
* Basic usage statement
*/
public static void usage() {
System.out.println("Usage: Demo remotehost user password");
}
}
注:高手们都会处理异常的,我这里就姑且不顾忌那么多了。有个异常处理也是不想改了,不影响正常
的使用。
这只是简单的ftp接收功能的实现,如果需要解决上传的问题,可以查阅edtftp自带的说明。在doc/api
里。
定时功能可以通过操作系统设置,不用在程序中体现^_^。
本文转自
http://bbs.chinaunix.net/archiver/?tid-834647.html