Taille d'un fichier avec url

aurelbobol6 Messages postés 36 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 4 février 2009 - 20 avril 2008 à 21:47
aurelbobol6 Messages postés 36 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 4 février 2009 - 21 avril 2008 à 14:49
Bonjour,

je recherche la taille d'un fichier sur un serveur distant. J'ai appliqué la méthode suivante qui marche pour les adresses HTTP mais pas pas pour les adresses FTP (j'obtiens -1).. pouvez m'aider svp, merci d'avance

        URL web;
        URLConnection urlConnection = null;
        try {
            web = new URL("adresses HTTP ou FTP");
            urlConnection = web.openConnection();
            int length = urlConnection.getContentLength();
            System.out.println(length);                    //affiche -1 pour les adresses FTP
        } catch (IOException e) {
            e.printStackTrace();
        }

Merci d'avance, aurel

3 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 avril 2008 à 22:45
Salut:

Vérifies bien que la ressource existe réellement.

J'ai fait tourné un exemple, ça marche sans aucun problème.
0
aurelbobol6 Messages postés 36 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 4 février 2009
21 avril 2008 à 09:52
oui la ressource existe parce que j'arrive à la télécharger, c'est ca que je n'arrive pas à comprendre... mais cela marche très bien avec les adresses d'en-têtes http:// ... et non avec les adresses ftp:// ...
En tout cas merci pour ta réponse mais personne n'a d'autres idées? je l'ai intégré dans mon code de téléchargement que voici:

private static void download(String lien, String fileDest)
        {
        URL web;
        URLConnection urlConnection = null;
        InputStream fIn = null;
        FileOutputStream fOut = null;
        try {
            web = new URL(lien);
            urlConnection = web.openConnection();
            fIn = urlConnection.getInputStream();
            fOut = new FileOutputStream(new File(fileDest));
        } catch (IOException e) {
            e.printStackTrace();
            }

        //Création des channels
        ReadableByteChannel canalIn = Channels.newChannel(fIn);
        WritableByteChannel canalOut = fOut.getChannel();
   
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        int count2 = 0;
        System.out.println(urlConnection.getContentLength());

        while(count2 ! = -1)
            {
            buffer.clear();
            try {
                count2 = canalIn.read(buffer);
            } catch (IOException e) {
                e.printStackTrace();
                }
            if (count2 != -1)
                {
                buffer.flip();
                try {
                    canalOut.write(buffer);
                } catch (IOException e) {
                    e.printStackTrace();
                    }
                }
            }
        System.out.println("Fermeture des canaux..");
        jFrameDownloader.addProgressBar(100);
        //fermeture des channels et des streams
        try {
            canalIn.close();
            canalOut.close();
            fIn.close();
            fOut.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

merci pour votre aide en tout cas
0
aurelbobol6 Messages postés 36 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 4 février 2009
21 avril 2008 à 14:49
t'as testé avec une adresse ftp? si oui laquelle? ... peut etre que ces mes adresses qui avaient un soucis. ou sinon je me tester la solution ftpConnection..
0
Rejoignez-nous