Datei downloaden ohne den Dateinamen zu kennen

tommey

Grünschnabel
Hallo, ich möchte ein Programm schreiben, welches Dateien aus dem Internet runterläd.
Den Quellcode unten habe ich gefunden und nicht selber geschrieben.
Mein Problem ist nun, dass Fileoutputstream nach einem verzeichnis + Dateinamen verlangt.
Da die Dateien die ich rutnerladen will Teil eines RAR Archives sind, kann ich die Dateien nicht willkürlich benennen. Mit dem Link zu der Datei, wird aber nicht der Dateiname ersichtlich.
Ein Link sieht z.B. so aus:

http://runterladen.de/e9b0e42ae80a22...b071c0f654be9a

Gibt es eine Möglichkeit den Dateinamen zu ermitteln?

Java:
public class Downloader {
        public static void downloadFile(String url_str, OutputStream os)
            throws IllegalStateException, MalformedURLException,
            ProtocolException, IOException {
 
        URL url = new URL(url_str.replace(" ", "%20"));
 
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
 
        conn.setRequestMethod("GET");
 
        conn.connect();
 
        int responseCode = conn.getResponseCode();
 
        if (responseCode == HttpURLConnection.HTTP_OK) {
 
            byte tmp_buffer[] = new byte[4096];
 
            InputStream is = conn.getInputStream();
 
            int n;
 
            while ((n = is.read(tmp_buffer)) > 0) {
                os.write(tmp_buffer, 0, n);
                os.flush();
            }
 
        } else {
            throw new IllegalStateException("HTTP response: " + responseCode);
        }
    }
 
    public static void main(String[] args) {
        try {
            final String url = "http://www.test.de/vb3/images/element/misc/logo_blue.gif";
 
            FileOutputStream fos = new FileOutputStream(System
                    .getProperty("user.home")
                    + File.separator + "logo.gif");
 
            downloadFile(url, fos);
 
            fos.close();
        } catch (Exception e) {
 
            e.printStackTrace();
        }
    }
}
 
Hi,

bitte formulier deine Frage noch etwas ausführlicher, ich verstehe nicht so recht was du machen willst.

- Client oder Serveranwendung?
- Was hat das "e9b0e42ae80a22...b071c0f654be9a" mit dem Dateinamen zu tun / wie wird dieser errechnet?
- Was hat dein Ausschnitt mit einem Rar-Archiv tun tun / wie hängt das damit zusammen?

Grüße,
BK
 
Client Anwendung, aber danke, hat sich erledigt, in den Headerfields der DATEI_URL steht der Name mit drin, wusste nicht dass es so trivial ist ;)
 
Zurück