IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Différencier dossier et répertoire


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Par défaut Différencier dossier et répertoire
    Bonjour,


    Voila je suis en train de mettre en place mon logiciel FTP, qui se connectera a un FTP et qui permettra de récupéré des fichiers ou des dossiers. Je me heurte a un problème qui est le suivant :

    - Comment différencié un répertoire et un fichier ?

    Car évidement le FTP contient des fichiers mais aussi des répertoire, j'aimerais pouvoir juste récupérer un fichier, ou un dossier complet.

    Code des méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.LinkedHashMap;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
     
    /**
     * @author trist06
     */
    public class Ftp {
     
        LinkedHashMap lc = new LinkedHashMap();
        FTPClient ftp = new FTPClient();
     
    .
    .
    .
        public LinkedHashMap listage() {
            try {
                // List the files in the directory
                FTPFile[] files = ftp.listFiles();
                String[] list = ftp.listNames();
                for (int i = 0; i < files.length; i++) {
                    String name = files[i].getName();
                    lc.put(i, name);
                }
                System.out.println("Nombre de Fichier au total " + files.length);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return lc;
        }
     
        public void changedir(String fic){
            try {
                ftp.changeWorkingDirectory(fic);
            } catch (IOException ex) {
                Logger.getLogger(Ftp.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        public void download(String destinationFolder, String fic) {
            try {
                FTPFile[] files = ftp.listFiles();
                String[] list = ftp.listNames();
                for (int i = 0; i < files.length; i++) {
                    File file = new File(destinationFolder + File.separator + files[i].getName());
                    FileOutputStream fos = new FileOutputStream(file);
                    ftp.retrieveFile(files[i].getName(), fos);
                    fos.close();
                }
                } catch  (Exception e) {
                e.printStackTrace();
            }
        }
    }
    Code de l'interface graphique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {                                    
            select = (String) jList1.getSelectedValue();
            jLabel3.setText(select);
        }                                   
     
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            ftp.changedir(select);
            ftp.download(dirName, select);
        }

    Merci par avance, j'utilise les librairies : commons-net-2.0

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut
    http://commons.apache.org/net/api/or...irectory%28%29

    Je pense que c'est ce que tu cherches, non ?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Par défaut
    Je test et je vous donne une réponse !


    Merci encore pour la rapidité !

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Par défaut
    Bonsoir, j'ai pu testé, ça marche, mais me fait retombé sur un autre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void download(String destinationFolder, String fic) {
            try {
                FTPFile[] files = ftp.listFiles();
                String[] list = ftp.listNames();
                for (int i = 0; i < files.length; i++) {
                    File file = new File(destinationFolder + File.separator +     files[i].getName());
                    FileOutputStream fos = new FileOutputStream(file);
                    ftp.retrieveFile(files[i].getName(), fos);
                    fos.close();
                }
                } catch  (Exception e) {
                e.printStackTrace();
            }
        }
    Dans ma méthode download je peux testé suivant la variable "i" si l'item et un dossier ou un fichiers.

    Cependant je bloque au niveau ou j'aimerais testé l'item selectionné par la SelectedValue de ma jList

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Elle contient quoi ta JList ? Des fichiers locaux ou des fichiers FTP ?

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Par défaut
    Citation Envoyé par Baptiste Wicht Voir le message
    Elle contient quoi ta JList ? Des fichiers locaux ou des fichiers FTP ?
    Elle contient tout les éléments du ftp.

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public void downloadfolder(String destinationFolder, String fic) {
            try {
                FTPFile[] files = ftp.listFiles();
                FTPFile[] fifi = ftp.listFiles(fic);
                String[] list = ftp.listNames();
                if (fifi[0].isFile()) {
                    System.out.println("file !");
                }
                if (fifi[0].isDirectory()) {
                    System.out.println("directory !");
                }
    Voila j'ai essayé ça, lorsque un fichier est séléctionné j'ai bien "file !" par contre lorsqu'un dossier est séléctionné j'ai :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    java.lang.ArrayIndexOutOfBoundsException: 0
            at pokimom.Ftp.downloadfolder(Ftp.java:71)
            at pokimom.Inter.jButton1ActionPerformed(Inter.java:212)
            at pokimom.Inter.access$000(Inter.java:21)
            at pokimom.Inter$1.actionPerformed(Inter.java:70)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:6263)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6028)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2475)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    le paramètre fic représente le ValueSelected du jList

Discussions similaires

  1. macro permettant de lister les fichiers d'un dossier ou répertoire
    Par sophie76 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/12/2015, 20h24
  2. lire le contenu d'un dossier ou répertoire en java
    Par bracelet dans le forum Général Java
    Réponses: 2
    Dernier message: 13/03/2014, 11h40
  3. [PHP 5.1] Lister les dossiers du répertoire racine sur un site
    Par tonio17 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2009, 13h19
  4. Mettre un commentaire sur dossier un répertoire
    Par Sakapatate dans le forum Windows XP
    Réponses: 3
    Dernier message: 08/11/2008, 09h00
  5. Réponses: 1
    Dernier message: 15/07/2008, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo