как сгенерировать идентифицированное имя файла из URL-адреса?

Теперь мне нужно загрузить файл, URL-адрес которого известен. Мне нужно сохранить его на SD-карту, когда действие загрузки будет завершено. Проблема в том, что я должен знать, существует ли файл перед загрузкой. Поэтому я планирую сохранить файл с идентифицированным именем файла, которое создается из URL-адреса. Поэтому, когда я получаю URL-адрес, я могу вычислить его соответствующее имя файла. Какой алгоритм мне следует использовать?

Кстати, JAVA - это то, что я использую.

Возможно, я не ясно выразил свое требование. Получить имя файла «abc.png» по URL-адресу «www.yahoo.com/abc.png» — это не то, что мне нужно. Потому что "www.google.com/abc.png" приводит к тому же имени файла. Мне нужно создать уникальное имя файла из URL.


person xing.zhang    schedule 15.05.2012    source источник


Ответы (1)


полный пример работает ... я пробовал несколько дней назад ... я уверен, что это поможет ...

package com.imagedownloader;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;

public class ImageDownloaderActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Bitmap bitmap=DownloadImage("http://www.allindiaflorist.com/imgs/arrangemen4.jpg");
        ImageView img =(ImageView)findViewById(R.id.imageView1);
        img.setImageBitmap(bitmap);

    }


    private Bitmap DownloadImage(String URL) {
        // TODO Auto-generated method stub
        Bitmap bitmap=null;
        InputStream in=null;
        try {

        in=OpenHttpConnection(URL);
        bitmap=BitmapFactory.decodeStream(in);

            in.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return bitmap;
    }

    private InputStream OpenHttpConnection(String stingurl) throws IOException {
        // TODO Auto-generated method stub
        InputStream in=null;
        int response=-1;

            URL url = new URL(stingurl);
            URLConnection conn=url.openConnection();



            if(!(conn instanceof HttpURLConnection))
                    throw new IOException("not and http exception");

            try{

                HttpURLConnection httpconn=(HttpURLConnection)conn;
                httpconn.setAllowUserInteraction(false);
                httpconn.setInstanceFollowRedirects(true);
                httpconn.setRequestMethod("GET");
                httpconn.connect();

                response=httpconn.getResponseCode();
                if(response==HttpURLConnection.HTTP_OK)
                {
                    in=httpconn.getInputStream();

                }

            }
            catch(Exception ex)
            {throw new IOException("Error connecting");   }
        return in;
    }
}
person ashish.n    schedule 15.05.2012
comment
Я думаю, вы неправильно поняли. Я знаю, как скачать файл с URL. Какая потребность в том, как дать идентифицированное имя файла, когда загрузка завершена. - person xing.zhang; 15.05.2012
comment
такого способа нет... вам нужно знать имя файла, который вы загружаете с URL-адреса... в таком случае вы можете напрямую применить это имя к файлу.. - person ashish.n; 15.05.2012