Recherche de fichier dans votre ordinateur

Contenu du snippet

C'est une application qui permet de rechercher le nom complet d'un fichier sur une ou deux destination(s) specifique(s). Les methodes sont bien-sur exploitables en dehors de cette aplication. Par exemple, je l'ai crée pour rechercher le nom complet d'images qui sont sur mon disque dur mais qui changent tout le temps de position. De cette façon, je n'est plus à me faire chier à savoir exactement ou se trouve cette image, il me faut juste le nom correct. Et voila, on me retourne son emplacement...

Source / Exemple :


/*******************************************************************************
                            créé par AlphaSurfeur

                                                          • le 23 Avril 2003 ********************************/
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import java.util.*; import java.io.*; public class ASRecherche extends JFrame { // creation des composants public int hauteur; public boolean bo = false; public Vector vecteur, vector; public File fichierCherche, fichierTrouve, fichierDirection, fichierDirection2; public String nomDeFichier, direction, direction2, memoryTestor; public JLabel labelNom = new JLabel("Fichier à rechercher:", SwingConstants.CENTER); public JLabel labelDirection = new JLabel("Direction initiale:", SwingConstants.CENTER); public JTextField tfNom = new JTextField(); public JTextField tfDirection = new JTextField(); public JTextField tfDirection2 = new JTextField(); public JTextArea area; public JButton bouton = new JButton("Remise à zero"); public JPanel haut, centre, bas; public Border bord, bord1, vide; // fin des composants /** Creates new ASRechercheFichier */ public ASRecherche() { super("Recherche de fichier"); // mise en place area = new JTextArea(30, 72); area.setEditable(false); haut = new JPanel(new GridLayout(0, 5, 5, 5)); centre = new JPanel(); bas = new JPanel(); haut.add(labelNom); haut.add(tfNom); haut.add(labelDirection); haut.add(tfDirection); haut.add(tfDirection2); haut.setBorder(bord = BorderFactory.createTitledBorder( vide = BorderFactory.createEtchedBorder(1), "Données de la recherche")); centre.add(new JScrollPane(area)); centre.setBorder(bord1 = BorderFactory.createTitledBorder( vide = BorderFactory.createEtchedBorder(1), "Résultats de la recherche")); bas.add(bouton); tfDirection.setToolTipText("Entrez la 1° direction comme ceci: \"X:/\""); tfDirection2.setToolTipText("Entrez la 2° direction comme ceci: \"Y:/\""); tfDirection2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ev){ // si deux directions setCursor(new Cursor(Cursor.WAIT_CURSOR)); if(tfNom.getText() == null || tfNom.getText().equals("") || tfDirection.getText() == null || tfDirection.getText().equals("") || tfDirection2.getText() == null || tfDirection2.getText().equals("")){ erreur("Il faut entrer un nom de fichier et une\n direction pour lancer la recherche.");} else{ // afficher le resultat File fichier = chercher(tfNom.getText(), tfDirection.getText(), tfDirection2.getText()); if(bo == false){ area.append(fichier.toString()); information(fichier.toString());} else{ area.append("\nfichier trouvé en : "+ fichier.toString()); information("fichier trouvé en: \n"+ fichier.toString());} } // fin d'affichage du resultat setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }}); tfDirection.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ev){ // si une direction setCursor(new Cursor(Cursor.WAIT_CURSOR)); if(tfNom.getText() == null || tfNom.getText().equals("") || tfDirection.getText() == null || tfDirection.getText().equals("")){ erreur("Il faut entrer un nom de fichier et une\n direction pour lancer la recherche.");} else{ // afficher le resultat File fichier = chercher(tfNom.getText(), tfDirection.getText()); if(bo == false){ area.append(fichier.toString()); information(fichier.toString());} else{ area.append("\nfichier trouvé en : "+ fichier.toString()); information("fichier trouvé en: \n"+ fichier.toString());} } // fin d'affichage du resultat setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); }}); bouton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ev){ clear();}}); Container c = getContentPane(); c.add(haut, BorderLayout.NORTH); c.add(centre, BorderLayout.CENTER); c.add(bouton,BorderLayout.SOUTH); c.validate(); information("inscrivez la ou les direction(s), puis tapez sur la touche \"enter\""); setVisible(true); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); hauteur = (int)d.getHeight()-28; setSize((int)d.getWidth(), hauteur); } // fin de constructeur //============================================================================== // chercher public File chercher(String nom_DeFichier, String direction_initiale, String direction_initiale2){ nomDeFichier = nom_DeFichier; direction = direction_initiale; direction2 = direction_initiale2; fichierCherche = new File(nomDeFichier); fichierDirection = new File(direction); fichierDirection2 = new File(direction2); if(fichierDirection.isDirectory() && fichierDirection2.isDirectory()){ do{ surch(nomDeFichier, direction); surch(nomDeFichier, direction2);} while(fichierTrouve == null); } else{ erreur("Le fichier entré dans la zone \"direction\"\n n'est pas une direction"); } return fichierTrouve; } // fin de chercher // chercher public File chercher(String nom_DeFichier, String direction_initiale){ nomDeFichier = nom_DeFichier; direction = direction_initiale; fichierCherche = new File(nomDeFichier); fichierDirection = new File(direction); if(fichierDirection.isDirectory()){ do{ surch(nomDeFichier, direction);} while(fichierTrouve == null); } else{ erreur("Le fichier entré dans la zone \"direction\"\n n'est pas une direction"); } return fichierTrouve; } // fin de chercher // surch public void surch(String nom_DeFichier, String nom_DeDirection){ try{ area.append("+++++++++++++++++++++surch+++++++++++++++++++++++\n"); direction = nom_DeDirection; nomDeFichier = nom_DeFichier; fichierCherche = new File(nom_DeFichier); fichierDirection = new File(nom_DeDirection); String contenue[] = fichierDirection.list(); Vector vecteur = new Vector(); Vector nouveauVecteur = new Vector(); // verifier si ce fichier n'a pas deja ete ouvert if(memoryTestor == direction){ // si oui fichierTrouve = new File("Ce fichier n'a pas ete trouvé"); bo = false;} else{ memoryTestor = direction; // verifier si la direction ne contient pas deja le fichier int nbrDeFichiers = contenue.length; int nbrDeDossiers = 0; for(int i = 0; i < nbrDeFichiers; i++){ vecteur.addElement(direction+"/"+contenue[i]);} // verifier si le dossier contient le fichier cherché String verificateur = new String(direction+"/"+nomDeFichier); if(vecteur.contains(verificateur)){ fichierTrouve = new File(verificateur); bo = true;} // verifier si les deux conditions bo et fichierTrouve sont ok if(fichierTrouve != null && bo == true){ } // stopper else{ // suite // jetter tous les fichiers pour ne garder que les dossiers // ajouter tous les dossiers dans le vecteur for(int i = 0; i < nbrDeFichiers; i++){ File file[] = new File[contenue.length]; file[i] = new File(direction+"/"+contenue[i]); if(file[i].isDirectory()){ // si dossier l'ajouter au vecteur nbrDeDossiers++; area.append("Ajout de "+file[i].toString()+"\n"); nouveauVecteur.addElement(file[i].toString());} else{ // ne pas l'ajouter au vecteur area.append("Supression de "+file[i].toString()+" ce n'est pas une direction"+"\n"); } } // fin de boucle area.append("NouvelleRecherche lancée"+"\n"); nouvelleRecherche(nouveauVecteur, nbrDeDossiers); }} // fin de else } // fin de try catch(java.lang.NullPointerException ex){ fichierTrouve = new File("Ce fichier n'a pas ete trouvé"); bo = false;} // fin de catch catch(java.lang.OutOfMemoryError ex){ fichierTrouve = new File("Mémoire insuffisante, erreur de calculs"); bo = false;} // fin de catch } // fin de surch public void nouvelleRecherche(Vector vec, int nbrDe_Fichiers){ area.append("+++++++++++++++nouvelle recherche++++++++++++++++\n"); // disposer le contenue de Vecteur dans nouveauContenue int nbrDeFichiers = nbrDe_Fichiers; String nouveauContenue[] = new String[nbrDeFichiers]; area.append("Il y a "+nbrDeFichiers+1+" éléments dans le vecteur de nouvelleRecherche"+"\n"); // sort les elements et les places dans un String[] for(int i = 0; i < nbrDeFichiers; i++){ area.append("Ajout dans le vecteur de "+String.valueOf(vec.elementAt(i))+"\n"); nouveauContenue[i] = String.valueOf(vec.elementAt(i));} // relancer la rechercherche pour chaque dossier for(int i = 0; i < nbrDeFichiers; i++){ if(nouveauContenue[i] == null || nouveauContenue[i].equals("")){ fichierTrouve = new File("Ce fichier n'a pas ete trouvé"); bo = false;} else{ area.append("Relance de la recherche à partir de: "+nouveauContenue[i]+"\n"); surch(nomDeFichier, nouveauContenue[i]);}} } // fin de nouvelleRecherche // clear() public void clear(){ tfNom.setText(""); tfDirection.setText(""); tfDirection2.setText("");area.setText("Nouvelle recherche ?"); fichierTrouve = null; fichierCherche = null; fichierDirection = null; fichierDirection2 = null; direction2 = null; nomDeFichier = null; direction = null; bo = false; vecteur = null; vector = null; } // fin de clear // erreur public void erreur(String err){ JOptionPane.showMessageDialog(null, err, "Erreur...", JOptionPane.ERROR_MESSAGE); } // fin d'erreur // info public void information(String info){ JOptionPane.showMessageDialog(null, info, "Information...", JOptionPane.INFORMATION_MESSAGE); } // fin d'information // main public static void main(String arg[]){ ASRecherche r = new ASRecherche(); r.validate(); r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } // fin de main } // fin de class

Conclusion :


Y a qu'a la demarrer, tout devient tres claire.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.