getContentLength不适用于android for FTP url

时间:2011-05-05 11:51:32

标签: java android ftp urlconnection

以下代码在android上为filesize打印长度为-1,但它在桌面JAVA上运行正常。 我正在使用Android 2.2。

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 个答案:

答案 0 :(得分:1)

Android平台的url连接代码使用不同的基础(Apache HTTP客户端),而不是Oracle JVM的实现。 Apache HTTP客户端本身不像桌面JVM那样支持FTP下载。

桌面JVM使用历史上名为sun.net.ftp.FtpClient的类来实现该FTP功能。 Android上没有太阳类可用,所以这不起作用。您需要拥有自己的FTP客户端。