Сравните размер файла на сервере с файлом на SD-карте, используя http в Android

Я могу скачать файл с сервера, используя менеджер загрузок Android и сохранить его в SDCard.

Теперь мне нужно получить размер файла на сервере, чтобы сравнить его с загруженным файлом на SD-карте. Я могу получить размер загруженного файла, теперь мне нужна помощь в создании метода, чтобы вернуть размер файла на сервере, пробовал это, но не работает..

  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(); 

Это дает мне инициализированное значение..-1 КБ, как я могу использовать этот метод, чтобы он возвращал размер файла

                              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()  

Наслаждайтесь, ребята!!!!

2 ответа

Решение
  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() 
final URLConnection connection = url.openConnection();
final int length = connection.getContentLength();

Попробуйте использовать URLConnection.getContentLength как указано выше. Если сервер не указывает длину, вы не можете знать.

length возвращает размер файла сервера. так что вы можете сравнить оба файла

Другие вопросы по тегам