getContentLength не работает на Android для FTP URL - PullRequest
1 голос
/ 05 мая 2011

Следующий код печатает длину -1 для размера файла на Android, но он отлично работает на настольном компьютере 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 Ответ

1 голос
/ 06 мая 2011

Код подключения URL-адреса платформы Android использует другую базу (клиент Apache HTTP), а не реализацию Oracle JVM. HTTP-клиент Apache изначально не поддерживает загрузку по FTP, как это делает настольная JVM.

В настольной JVM используется класс, который исторически назывался sun.net.ftp.FtpClient для этой функции FTP. Ни один из классов солнца не доступен на Android, так что это не работает. Вам нужно будет получить свой собственный FTP-клиент.

...