getContentLength不适用于android for FTP url

以下代码在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中获取文件大小的任何解决方法,请告诉我..

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

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