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

Java Discussion :

[Stratégie] Comment lister les fichiers sous forme d'arborescence


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut [Stratégie] Comment lister les fichiers sous forme d'arborescence
    j'ai une methode qui liste des fichiers dans mon répertoire, et de mes répertoires.
    l'objectif est de proposer en téléchargement ces fichiers dans une IHM;

    le problème est le suivent dans mon répertoire je peux avoir 1000 sous-répertoires contenant 10000 fichiers.

    et pour l'instant mon programme liste tout les fichiers, de mon répertoire, mais lister 10000000 fichier ce n'est pas vraiment drôle !!!

    alors ma question est ce que vous pouvez m'aider pour que je puisse afficher seulement le sous dossier avec un petit "+", et quand on clique sur le "+", on afficher le sous dossier au les fichiers.

    eg:
    Dossier
    +sous-dossier1
    + sous-dossier2
    - sous-dosier3
    -fichier1
    -fichier2
    +sous-dossier3.1

    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
     
    public ArrayList<String> scanDir ( String theDirectory ) throws IOException {
     
    		File currDir = new File ( theDirectory );
     
    		if(!currDir.exists() || !currDir.isDirectory())
    			return null;
     
     
    		else {
     
    			//String[] fileList = currDir.list();
    			//String[] fileList = currDir.list(); 
    			File[] fileList1 = currDir.listFiles();
    			//System.out.println(fileList);
    			for(File f : fileList1){
    				if(f.isDirectory()){
    					finalListFiles=scanDir(theDirectory + File.separator + f.getName());
     
    				}
    				else{
     
    					String fileList =f.getName();
    					finalListFiles.add(fileList);
     
     
    				}
    			}
    			return finalListFiles;
    		}
     
     
    	}

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 136
    Points
    136
    Par défaut
    Salut,

    Des frameworks comme GWT proposent des widgets permettant de gérer de genre de cas "assez" facilement.
    Après faudrait savoir quelle techno tu utilises pour pouvoir t'aider plus efficacement.
    "Je sais que je suis un geek depuis que j'utilise le timer de mIRC pour faire cuire des pâtes"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut
    en fait j'utilise tout simplement java, et mon objectif c'est de lister tout simplement les fichiers du dossier et les fichiers de sous dossiers, sous forme d'arborescence.

    ensuite, dans une deuxième étape je vais implémenter cette classe dans une page jsp/servlet.

    Cordialement,

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 136
    Points
    136
    Par défaut
    Du côté de ton code java y'a pas grand chose à faire, si ce n'est adapter ta structure de données pour que tu puisses récupérer seulement le contenu d'un répertoire.
    D'ailleurs tu es sûr que ta fonction est correcte ? Il me semble qu'à ce niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(f.isDirectory()){
       finalListFiles=scanDir(theDirectory + File.separator + f.getName());
    }
    tu perds la référence d'un sous-répertoire à chaque que tu passes au suivant (enfin j'ai pas testé).

    Au final c'est au niveau de l'interface graphique que tu dois gérer l'affichage en arborescence. Je suis pas un pro du html donc je ne pourrais pas te dire comment le réaliser.
    En dernier recours tu peux toujours chercher un site avec un arbre et regarder le source.
    "Je sais que je suis un geek depuis que j'utilise le timer de mIRC pour faire cuire des pâtes"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut
    le programme je l'ai testé, il affiche tous les fichiers existants dans mon dossier et les sous-dossiers de mon dossier.

    et moi ce que je souhaite ce n'est pas vraiment gérer l'affichage , c'est juste au lieu de lister tout les fichiers un par un, j'affiche (les fichiers et les dossiers-fils) de mon dossier mère . puis j'affiche les fichier et les sous-dossier de mon dossier-fils, ainsi de suite......

    comme si c'est un affichage par niveau,

  6. #6
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour l'affichage, est-ce que tu utilises swing, ou une console ?
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut
    Une console, en occurrence celle d'Eclipse.

  8. #8
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Excuse que je te pose des questions alors que je devrais y répondre

    Tu dis dans ton premier post que tu veux afficher un sous répertoire lorsque on clic sur le +... On peut faire ça avec une console eclipse ?? (avec une console shell on le peut, mais enfin c'est pas le but habituellement : c'est presque plus facile de gérer ce genre de choses par un bon vieux GUI que par une console améliorée).
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut
    je pense que je me suis mal exprimé.
    je vais essayer d'exposer mon problème dés le début:
    je suis entraine de développer une IHM en java : JSP/Servlet sur eclipse qui dois permettre ,entre autre, à un utilisateur lambda de télécharger ses fichiers via une interface.

    alors je me suis dit qu'il faut que je commence par lister les fichiers de chaque utilisateur, ensuite lui permettre de choisir, puis télécharger un/des fichier.

    le problème chaque utilisateur dispose de 100000 fichier classés dans plusieurs sous-dossier.

    pour l'instant j'ai fait un petit programme qui liste tout les fichiers, ceux dans le dossier mère et ceux dans les dossier fils.
    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
    public ArrayList<String> scanDir ( String theDirectory ) throws IOException {
     
    		File currDir = new File ( theDirectory );
     
    		if(!currDir.exists() || !currDir.isDirectory())
    			return null;
     
     
    		else {
     
    			//String[] fileList = currDir.list();
    			//String[] fileList = currDir.list(); 
    			File[] fileList1 = currDir.listFiles();
    			//System.out.println(fileList);
    			for(File f : fileList1){
    				if(f.isDirectory()){
    					finalListFiles=scanDir(theDirectory + File.separator + f.getName());
     
    				}
    				else{
     
    					String fileList =f.getName();
    					finalListFiles.add(fileList);
     
     
    				}
    			}
    			return finalListFiles;
    		}
     
     
    	}
    mais vous imaginez bien que si l'utilisateur se retrouve avec 10000 fichiers, il va avoir du mal à se repérer.
    donc je me suis dit je dois afficher les fichier par dossier, puis c'est à l'utilisateur de choisir un dossier, ensuite sélectionner un fichier .

    peut être ce n'est pas le meilleur idée mais si quelqu'un à une meilleur idée je suis preneur.

    voila ça fait pas mal du temps que je retourne en boucle si quelqu'un peut m'aider ou me filer un document ou un bout de code je serais reconnaissant.

    merci tous pour votre aide.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 136
    Points
    136
    Par défaut
    Salut,

    Désolé je n'avais pas bien compris le code au début. Effectivement avec juste une liste de String tu n'arriveras jamais, de façon simple, à faire ce que tu veux.

    A priori, tu devrais t'en sortir pas trop mal en implémentant un composite, qui te permettrait se simuler une strucure de répertoire contenant des répertoires ou des fichiers.
    J'aurai plus le temps de me pencher sur le code ce week end, mais tu devrais trouver pas mal d'exemples sur le net.
    "Je sais que je suis un geek depuis que j'utilise le timer de mIRC pour faire cuire des pâtes"

  11. #11
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Et je te conseille de reposer ta question, avec tous les éléments clarificateurs que nous avons découverts ensemble, sur un des sous-forums Développement Web en Java, selon ce qui correspond le mieux à ton environnement exact.

    En effet il y a plein de jsp/ajax/framework qui font ce genre de choses, et ils te guideront mieux dans ce contexte.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/06/2007, 23h25
  2. Réponses: 7
    Dernier message: 08/01/2007, 19h18
  3. Comment lister les fichiers dans un répertoire ?
    Par PatricePatrice dans le forum Framework .NET
    Réponses: 18
    Dernier message: 04/01/2007, 10h15
  4. Réponses: 13
    Dernier message: 24/08/2006, 13h05
  5. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35

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