将URL转换为文件名的简单方法

时间:2012-01-29 17:42:22

标签: android file-io

我正在为Android编写一个异步图像下载器,只是想知道,给出了一个如下的任意URL:

  

http://www.android.com/images/brand/droid.gif

将唯一网址转换为文件名的最佳方式是什么?我想简单地拆分网址并抓住最后一部分,但我希望文件名代表整个网址。我认为其他替代方案是用下划线替换所有正斜杠或简单地对整个URL进行散列并存储它。

如果有人有任何想法,我很乐意听到他们的声音!

由于

2 个答案:

答案 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”