我使用DownloadManager类管理下载,我使用此
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,subPath);
目前我将subPath设置为某个文件名,但如何从url获取文件名?
我不想使用光标,但有些方法可以从uri中提取文件名。
答案 0 :(得分:0)
您可以使用:
get('story.json').then(function(response) {
console.log("Success!", response);
return get('b.json');
}, function(error) {
console.error("Failed!", error);
}).then(function(res){
// response for b
});
请查看Android DownloadManager get filename
希望这有帮助!
答案 1 :(得分:0)
好吧,如果没有光标,那么试试这个:
class GetFileName extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... urls)
{
URL url;
String filename = null;
try {
url = new URL(urls[0]);
String cookie = CookieManager.getInstance().getCookie(urls[0]);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Cookie", cookie);
con.setRequestMethod("HEAD");
con.setInstanceFollowRedirects(false);
con.connect();
String content = con.getHeaderField("Content-Disposition");
String contentSplit[] = content.split("filename=");
filename = contentSplit[1].replace("filename=", "").replace("\"", "").trim();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
}
return filename;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
}
}