|
@@ -6,14 +6,9 @@ import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.OutputStream;
|
|
|
-import java.net.SocketException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Properties;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import org.apache.commons.net.ftp.FTPClient;
|
|
|
-import org.apache.commons.net.ftp.FTPClientConfig;
|
|
|
import org.apache.commons.net.ftp.FTPFile;
|
|
|
import org.apache.commons.net.ftp.FTPReply;
|
|
|
|
|
@@ -48,7 +43,7 @@ public class FtpUtil {
|
|
|
|
|
|
|
|
|
* 获取ftp连接,该连接指向ftp配置中的downloadpath文件夹
|
|
|
- * @param map包含ftp连接配置的map
|
|
|
+ * @param map
|
|
|
*/
|
|
|
public static FTPClient connect(Map<String,Object> map) throws Exception {
|
|
|
return connect(map,map.get("downloadpath").toString());
|
|
@@ -56,7 +51,7 @@ public class FtpUtil {
|
|
|
|
|
|
|
|
|
* 获取ftp连接,该连接指向ftp配置中的downloadpath文件夹
|
|
|
- * @param map包含ftp连接配置的map
|
|
|
+ * @param map
|
|
|
*/
|
|
|
public static FTPClient connect(Map<String,Object> map,String path){
|
|
|
FTPClient ftp = null;
|
|
@@ -157,13 +152,30 @@ public class FtpUtil {
|
|
|
try {
|
|
|
ftpClient.enterLocalPassiveMode();
|
|
|
FTPFile[] ftpFiles = ftpClient.listFiles();
|
|
|
- for (FTPFile file : ftpFiles) {
|
|
|
- if(file.getName().toUpperCase().endsWith("." + fileType)){
|
|
|
- File localFile = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getName());
|
|
|
- OutputStream os = new FileOutputStream(localFile);
|
|
|
- ftpClient.retrieveFile(file.getName(), os);
|
|
|
- os.close();
|
|
|
- files.add(localFile);
|
|
|
+ if (ftpFiles != null && ftpFiles.length > 0) {
|
|
|
+ ArrayList<FTPFile> list = new ArrayList<FTPFile>(Arrays.asList(ftpFiles)) ;
|
|
|
+ Collections.sort(list, new Comparator<FTPFile>() {
|
|
|
+ @Override
|
|
|
+ public int compare(FTPFile o1, FTPFile o2) {
|
|
|
+ long time = o1.getTimestamp().getTime().getTime();
|
|
|
+ long time1 = o2.getTimestamp().getTime().getTime();
|
|
|
+ if ( time>time1 ) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ if (time == time1) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ for (FTPFile file : list) {
|
|
|
+ if(file.getName().toUpperCase().endsWith("." + fileType)){
|
|
|
+ File localFile = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getName());
|
|
|
+ OutputStream os = new FileOutputStream(localFile);
|
|
|
+ ftpClient.retrieveFile(file.getName(), os);
|
|
|
+ os.close();
|
|
|
+ files.add(localFile);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|