2017-11-30 37 views
7

私は、FTP directoryのフォルダとファイルをリストするAndroidアプリを持っています。私は Apache Commons FTP Clientを使用します。それは私があらゆるフォルダのために呼ぶこのラインに来る。FTPファイルを再帰的にリストアップする

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

細かいが非常に時間がかかる。タスク全体(すべてのファイルとフォルダを取得する)には約1分かかります。何とかそれをスピードアップできますか?

私はすでに私のプロジェクトが助けかもしれない

ftpClient.setBufferSize(1024000); 
+0

唯一の方法は、複数の並列接続を使用しています。 –

+0

1回のコールに1分かかりますか? – greenapps

+0

いいえ:*タスク(すべてのファイルとフォルダを取得)には約1分かかります* –

答えて

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 
関連する問題