我可以使用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()
享受男人们!
答案 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()