0

Androidダウンロードマネージャーを使用してサーバーからファイルをダウンロードし、SDカードに保存できます。

次に、サーバー内のファイルのサイズを取得して、sdcard にダウンロードされたファイルと比較する必要があります。ダウンロードしたファイルのサイズを取得できました。サーバーでファイルのサイズを返すメソッドを作成する際に助けが必要です。これを試しましたが、機能しません..

  public  int getFileSizeAtURL(URL url)
        {


          int filesize = -1;

          try
          {
              URL urls = new URL(file_url);
              HttpURLConnection http = (HttpURLConnection)urls.openConnection();
              http.connect();
              filesize = http.getContentLength();
              http.disconnect();

          }
          catch(Exception e)
          {

          }

          return filesize;

        }

を使用して

           Toast.makeText(getApplicationContext(),getFileSizeAtURL(urls)+" kb", Toast.LENGTH_LONG).show(); 

それは私に初期化された値を与えます..-1kbファイルサイズを返すようにこのメソッドを使用するにはどうすればよいですか

                              Solved it !!!!

このコードをメインメソッドに配置することで問題を解決しました

   if (android.os.Build.VERSION.SDK_INT > 9) {
                            StrictMode.ThreadPolicy policy = 
                                new StrictMode.ThreadPolicy.Builder().permitAll().build();
                            StrictMode.setThreadPolicy(policy);
                        } 
                      URL urls = new URL(file_url);
                      HttpURLConnection http = (HttpURLConnection)urls.openConnection();
                      http.connect();
                      int filesize = http.getContentLength();

                      http.disconnect();

サーバー内のファイルのファイルサイズがわかり、sdcard 上のファイルと比較できるようになりました。

    File file=Environment.getExternalStorageDirectory();
                        String filename = file.getPath() + "/test/testing";
                        File myfile = new File(filename);
                        long size = myfile.length()  

みんなを楽しんでください!!!!

4

2 に答える 2

1
final URLConnection connection = url.openConnection();
final int length = connection.getContentLength();

上記のように使ってみてくださいURLConnection.getContentLength。サーバーが長さを指定しない場合、知ることはできません。

length、サーバーのファイル サイズを返します。両方のファイルを比較できるように

于 2013-01-16T09:40:39.173 に答える