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 :

[Système][fichier] recherche de fichier dans tout le disque dur


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [Système][fichier] recherche de fichier dans tout le disque dur
    bonjour à vous


    voila j'ai un problème je me demande si, en java, il est possible de cherche un fichier dans le disque dur.

    par exemple je cherche le fichier image.jpg sans savoir son URL et je me demande si c'est possible de retrouver son URL.

    voila merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    oui c'est possible il faut faire du récursif à base de File et listFiles()

    j'essaie de programmer ça vite fait
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    grand merci a toi en tout cas

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Essaies ca http://javaalmanac.com/egs/java.io/TraverseTree.html et a chaque fois que tu tombes sur un fichier, compares son nom avec le nom du fichier que tu cherches.

    D.
    Loved by few, hated by many, respected by all

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    suis je bête tout ca se résume en un parcours d'arbre récursif avec la méthode lisFiles() en tout cas j'attend ton code parce que je suis pas très fort en java et ca m'aidera beaucoup

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ça ça te liste tous les fichiers de ton dd (ici D: , je sais pas comment récupérer les différentes partitions) :

    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
     
    import java.io.File;
     
    public class Essai
    {
    	public static void main(String args[])
    	{
    		essai(new File("D:\\"));
    	}
     
    	private static void essai(File f)
    	{
    		File[] liste_fils = f.listFiles();
     
    		if(liste_fils!=null)
    		{
    			System.out.println(f.getPath());
     
    			for(File fils:liste_fils)
    			{
    				essai(fils);
    			}
    		}
    	}
    }
    en le bidouillant un peu tu peux obtenir une recherche de fichier
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Encore une fois tu as utilisé une sémantique Tiger (java 5), pourrais tu faire un effort pour utiliser une sémantuique classique, merci.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    merci pour vos deux réponses trés rapides



    Essaies ca http://javaalmanac.com/egs/java.io/TraverseTree.html et a chaque fois que tu tombes sur un fichier, compares son nom avec le nom du fichier que tu cherches.
    juste une chose dans le code il y a un process(dir) j'ai peur de mal comprendre, process(dir) n'est pas vraiment utile pour le copde c'est juste pour représenté un ensemble d'action sur le fichier ?

  9. #9
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ça, ça te renvoie la liste des fichiers portant le nom que tu veux

    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
     
    import java.io.File;
    import java.util.ArrayList;
     
    public class Essai
    {
    	public static void main(String args[])
    	{
    		al = new ArrayList<String>();
     
    		essai(new File("D:\\"),"fichier.extension");
     
    		for(String s:al)
    		{
    			System.out.println(s);
    		}
    	}
     
    	private static void essai(File f,String s)
    	{
    		if(f.getName().equals(s)) al.add(f.getPath());
     
    		File[] liste_fils = f.listFiles();
     
    		if(liste_fils!=null)
    		{
    			for(File fils:liste_fils)
    			{
    				essai(fils,s);
    			}
    		}
    	}
     
    	private static ArrayList<String> al;
    }
    je traduis en "classique" sur le champ
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  10. #10
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    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
     
    import java.io.File;
    import java.util.ArrayList;
     
    public class Essai
    {
    	public static void main(String args[])
    	{
    		al = new ArrayList();
     
    		essai(new File("D:\\"),"fichier.extension");
     
    		int n = al.size();
    		for(int i=0;i<n;i++)
    		{
    			System.out.println(al.get(i));
    		}
    	}
     
    	private static void essai(File f,String s)
    	{
    		if(f.getName().equals(s)) al.add(f.getPath());
     
    		File[] liste_fils = f.listFiles();
     
    		if(liste_fils!=null)
    		{
    			for(int i=0;i<liste_fils.length;i++)
    			{
    				essai(liste_fils[i],s);
    			}
    		}
    	}
     
    	private static ArrayList al;
    }
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    Merci pour votre réponses, et je voudrais savoir comment on peut faire pour afficher le racine ctadire les disques dur C: D: , et puis parcourir un fichier graphiquement?
    je vous remercie

  12. #12
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Pour avoir la liste des racines ton système de fichiers tu as ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File[] roots = File.listRoots();
    Cf JavaDoc
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/01/2013, 08h36
  2. Réponses: 1
    Dernier message: 06/11/2009, 16h54
  3. Rechercher une donnée dans toutes les tables d'une BDD
    Par TheYoMan dans le forum Paradox
    Réponses: 2
    Dernier message: 23/10/2008, 20h24
  4. Réponses: 6
    Dernier message: 01/05/2007, 22h03
  5. Réponses: 2
    Dernier message: 20/12/2006, 10h51

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