Сравните размер файла на сервере с файлом на 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
возвращает размер файла сервера. так что вы можете сравнить оба файла