2011-05-05 88 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客户端。