2017-11-30 84 views
7

Mam aplikację na Androida, która zawiera foldery i pliki o numerach FTP directory. Używam Apache Commons FTP Client. Sprowadza się to do tej linii, do której wzywam każdy folder. Działa dobrze, ale jest bardzo czasochłonny. Całe zadanie (pobieranie wszystkich plików i folderów) zajmuje około minuty. Czy mogę to jakoś przyspieszyć?Przyspieszenie rekurencyjnego wyświetlania plików FTP

Próbowałem już

ftpClient.setBufferSize(1024000); 
+0

Jedynym sposobem na przyspieszenie tego procesu, jest za pomocą wielu połączeń równoległych. –

+0

Czy jedno połączenie zajmuje minutę? – greenapps

+0

Nie: * Całe zadanie (pobieranie wszystkich plików i folderów) zajmuje około minuty * –

Odpowiedz

2

mój projekt może być pomocne. https://github.com/Honwhy/commons-pool-ftp (patrz ftpcp oddział)

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 
Powiązane problemy