2017-11-30 15 views
7

मेरे पास एक एंड्रॉइड ऐप है जो फ़ोल्डर्स और FTP directory की फाइलों को सूचीबद्ध करता है। मैं Apache Commons FTP Client का उपयोग करता हूं। यह इस लाइन जो मैं हर फ़ोल्डरएफ़टीपी फाइलों को रिकर्सिवली सूचीबद्ध करने की गति

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

वर्क्स ठीक के लिए कॉल करने के लिए नीचे आता है, लेकिन बहुत समय लगता है। पूरा कार्य (सभी फाइलें और फ़ोल्डर्स प्राप्त करना) लगभग एक मिनट लेता है। क्या मैं इसे किसी भी तरह से गति दे सकता हूं?

मैं पहले से ही करने की कोशिश की

ftpClient.setBufferSize(1024000); 
+0

, कई समानांतर कनेक्शन का उपयोग कर रहा है। –

+0

क्या कोई कॉल एक मिनट लेता है? – greenapps

+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 
संबंधित मुद्दे