使用http中的http比较服务器上文件的大小和SD卡上的文件大小

时间:2013-01-16 09:37:41

标签: android filesize

我可以使用android下载管理器从服务器上下载文件并将其保存在SD卡中。

现在我需要获取服务器中文件的大小,以便与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(); 

它给我初始化的值..- 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()  

享受男人们!

2 个答案:

答案 0 :(得分:1)

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

尝试使用上述URLConnection.getContentLength。如果服务器没有指定长度,那么你无法知道。

length返回服务器文件大小。这样你就可以比较两个文件

答案 1 :(得分:0)

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