2011-05-05 47 views
1

以下代碼在android上打印長度爲-1的文件大小,但它在桌面JAVA上正常工作。 我正在使用Android 2.2。getContentLength不適用於android的FTP url

URL url1 = null; 
URLConnection uconn = null; 
try { 
    url1 = new URL("ftp://FTPHOST/file.zip"); 
    uconn = url1.openConnection(); 
    uconn.setDoInput(true); 
    int len= uconn.getContentLength(); 
    int headersize = uconn.getHeaderFields().size(); 
    System.out.println("******************************* "+len); 
    } catch (Exception e) {  
     e.printStackTrace(); 
    } 
return null; 

讓我知道如果在Android的任何變通方法來獲得文件大小..

+1

你確定url是否正確,並且文件存在? – Pasha 2011-05-05 12:03:26

+0

是的..代碼工作正常的情況下在桌面上的Java .. – knocker 2011-05-05 14:12:38

+0

也許你忘了添加權限? – Pasha 2011-05-06 07:37:30

回答

1

Android平臺的URL連接代碼使用不同的基礎(Apache的HTTP客戶端)的引擎蓋下,而不是在Oracle JVM的實現。 Apache HTTP客戶端本身不支持FTP下載桌面JVM的方式。

桌面JVM使用歷史上爲該FTP功能命名爲sun.net.ftp.FtpClient的類。 Android上沒有太陽類可用,所以這是行不通的。你需要獲得你自己的FTP客戶端。

相關問題