1

次のコードは、Androidではファイルサイズの長さ-1を出力しますが、デスクトップJAVAでは正常に機能します。私はAndroid2.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の回避策があるかどうか教えてください。

4

1 に答える 1

1

AndroidプラットフォームのURL接続コードは、Oracle JVMの実装ではなく、内部で別のベース(Apache HTTPクライアント)を使用します。Apache HTTPクライアントは、デスクトップJVMのようにFTPダウンロードをネイティブにサポートしていません。

sun.net.ftp.FtpClientデスクトップJVMは、そのFTP機能にちなんで名付けられたクラスを使用します。AndroidではSunクラスを利用できないため、機能しません。独自のFTPクライアントを入手する必要があります。

于 2011-05-05T21:50:10.623 に答える