我正在为Android编写一个异步图像下载器,只是想知道,给出了一个如下的任意URL:
将唯一网址转换为文件名的最佳方式是什么?我想简单地拆分网址并抓住最后一部分,但我希望文件名代表整个网址。我认为其他替代方案是用下划线替换所有正斜杠或简单地对整个URL进行散列并存储它。
如果有人有任何想法,我很乐意听到他们的声音!
由于
答案 0 :(得分:3)
如果是,通常使用MD5哈希。但我建议使用'aquery'库。在库中,您只需下载Image异步并将其置于视图中即可。它还支持磁盘缓存,内存缓存。
答案 1 :(得分:1)
此方法将满足您的要求。它将生成一个代表原始URL的名称。您可以像这样调用generateNameFromUrl(String url)
方法。
String url = "http://www.android.com/images/brand/droid.gif";
String uniqueName = generateNameFromUrl(url));
方法如下:
public static String generateNameFromUrl(String url){
// Replace useless chareacters with UNDERSCORE
String uniqueName = url.replace("://", "_").replace(".", "_").replace("/", "_");
// Replace last UNDERSCORE with a DOT
uniqueName = uniqueName.substring(0,uniqueName.lastIndexOf('_'))
+"."+uniqueName.substring(uniqueName.lastIndexOf('_')+1,uniqueName.length());
return uniqueName;
}
输入:“http://www.android.com/images/brand/droid.gif”
输出“http_www_android_com_images_brand_droid.gif”