Простой способ конвертировать URL в имя файла - PullRequest
3 голосов
/ 29 января 2012

Я пишу асинхронный загрузчик изображений для Android, и мне было просто интересно, учитывая произвольный URL, такой как:

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

Как лучше всего преобразовать уникальный URL в имя файла. Я думал о том, чтобы просто разделить URL-адрес и перехватить последний раздел, но я хочу, чтобы имя файла представляло весь URL-адрес. Другие альтернативы, которые я думал, заменяли все косые черты подчеркиванием или просто хэшировали весь URL и сохраняли его.

Если у кого-нибудь есть идеи, я бы с удовольствием их услышал!

Спасибо

Ответы [ 2 ]

3 голосов
/ 29 января 2012

В этом случае обычно используется хеш MD5.но я предлагаю использовать библиотеку 'aquery'.В библиотеке вы можете просто скачать изображение асинхронно и выставить его на просмотр.Он также поддерживает кеш диска, кеш памяти просто.

1 голос
/ 29 января 2012

Этот метод будет соответствовать вашим требованиям. Он сгенерирует имя, которое будет представлять оригинальный 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"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...