public static void download()
{
String url = strUrl;
String user = strUser;
String pwd = strPassword;
String strDir = strLocalPath;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String strCurrentDate = sdf.format(new Date());
strDir = strDir.concat(strCurrentDate).concat("/test");
FTPClient ftp = new FTPClient();
ftp.connect(url);
if (ftp.login(user, pwd)) {
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.out.println("disconnect");
} else {
ftp.enterLocalPassiveMode();
ftp.setFileType(FTP.BINARY_FILE_TYPE);
}
}
// String[] names = ftp.listNames("/development/testsit/log/test");
// for(String name : names)
// {
// System.out.println("==" + name);
// }
String strPath = strFtpPath.concat("test");
FTPFile[] ftpFiles = ftp.listFiles(strPath);
File dir = new File(strDir);
if (!dir.exists()) {
dir.mkdirs();
}
for (FTPFile ftpFile : ftpFiles) {
Calendar calendar = ftpFile.getTimestamp();
Calendar rightNow = Calendar.getInstance();
if (calendar.get(Calendar.YEAR) == rightNow.get(Calendar.YEAR)
&& calendar.get(Calendar.MONTH) == rightNow
.get(Calendar.MONTH)
&& calendar.get(Calendar.DATE) == rightNow
.get(Calendar.DATE)) {
System.out.println(ftpFile.getName());
File file = new File(dir.getPath() + File.separator
+ ftpFile.getName());
if (!file.exists()) {
file.createNewFile();
}
long pos = file.length();
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.seek(pos);
ftp.setRestartOffset(pos);
InputStream is = ftp.retrieveFileStream(strPath + "/"
+ ftpFile.getName());
if (is == null) {
System.out.println("no such file:" + ftpFile.getName());
} else {
System.out.println("start getting file:"
+ ftpFile.getName());
int b;
while ((b = is.read()) != -1) {
raf.write(b);
}
if (ftp.getReply() == 226) {
System.out.println("done!");
}
is.close();
}
raf.close();
}
}
ftp.logout();
}