加速递归列出FTP文件

时间:2017-11-30 15:27:24

标签: java android ftp apache-commons-net

我有一个Android应用程序,列出了FTP directory的文件夹和文件。我用 Apache Commons FTP Client。它归结为我为每个文件夹调用的这一行

FTPFile[] folderElements = ftpClient.listFiles(folderName);

工作正常,但非常耗时。整个任务(获取所有文件和文件夹)大约需要一分钟。我可以以某种方式提高速度吗?

我已经尝试了

ftpClient.setBufferSize(1024000);

1 个答案:

答案 0 :(得分:2)

我的项目可能是一个帮助。 https://github.com/Honwhy/commons-pool-ftp(参见ftpcp分支)

FTPCPManager ftpCPManager = new FTPCPManager();
ftpCPManager.setUrl("ftp://127.0.0.1");
ftpCPManager.setUsername("sa");
ftpCPManager.setPassword("sa");
ftpCPManager.setKeepAliveTimeout(1 * 60);

ftpCPManager.setConnectTimeout(1 * 1000);
ftpCPManager.setMaxWait(1 * 1000);

CommonFAOSupport support = new CommonFAOSupport(ftpCPManager);

support.downloadDirectory("/apps/data/ftp/download", 4000, 10, processService); //10 thread