2011-05-05 3 views
1

다음 코드는 안드로이드에서 filesize 길이 -1을 인쇄하지만 데스크톱 JAVA에서 잘 작동합니다. Android 2.2를 사용하고 있습니다. 안드로이드의 모든 해결 방법은 파일 크기를 얻을 수 알려줘getContentLength가 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; 

..

+1

URL이 정확하고 파일이 존재합니까? – Pasha

+0

예 .. 데스크톱에서 Java의 경우 코드가 제대로 작동합니다. – knocker

+0

권한을 추가하지 않으셨습니까? – Pasha

답변

1

안드로이드 플랫폼의 URL 접속 코드는 오히려 오라클 JVM의 구현보다, 후드 아래에 다른 기본 (아파치 HTTP 클라이언트)를 사용합니다. Apache HTTP 클라이언트는 데스크탑 JVM의 방식대로 FTP 다운로드를 기본적으로 지원하지 않습니다.

데스크탑 JVM은 해당 FTP 기능에 대해 역사적으로 sun.net.ftp.FtpClient으로 명명 된 클래스를 사용합니다. Android에서 사용할 수있는 태양 수업은 없으므로 작동하지 않습니다. 자신의 FTP 클라이언트를 가져와야합니다.

관련 문제