2017-11-30 12 views
7

Tôi có một ứng dụng Android liệt kê các thư mục và tệp của FTP directory. Tôi sử dụng Apache Commons FTP Client. Nó đi xuống dòng này mà tôi gọi cho mỗi thư mụcTăng tốc đệ quy liệt kê các tệp FTP

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

Hoạt động tốt nhưng tốn rất nhiều thời gian. Toàn bộ tác vụ (nhận tất cả các tệp và thư mục) mất khoảng một phút. Tôi có thể tăng tốc độ bằng cách nào đó không?

Tôi đã cố gắng

ftpClient.setBufferSize(1024000); 
+0

Cách duy nhất để tăng tốc độ nó lên, được sử dụng nhiều kết nối song song. –

+0

Một cuộc gọi có mất một phút không? – greenapps

+0

Không: * Toàn bộ nhiệm vụ (nhận tất cả các tệp và thư mục) mất khoảng một phút * –

Trả lời

2

dự án của tôi có thể là một trợ giúp. https://github.com/Honwhy/commons-pool-ftp (xem chi nhánh 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 
Các vấn đề liên quan