Se connecter avec
S'enregistrer | Connectez-vous

moteur de recherche de fichier en java

Dernière réponse : dans Programmation

Bonjour,
je souhaiterais réaliser en java un petit moteur de recherche d'images jpg.

En fait, celui-ci devrait être capable de chercher une image jpg dans tout un disque dur à partir de son nom et ensuite de la copier dans un répertoire dont le chemin est donné par l'utilisateur.

Cependant, je ne vois pas du tout comment faire ca, j'ai une petite partie de code pour la recherche qui n'a pas l'air de bien fonctionner. La voici :

public boolean chercheRef(String ref, File rep)
{
if(rep.isDirectory())
{
destCourante.setText(rep.getPath());

File[] liste = rep.listFiles();

for(int i = 0; i < liste.length; i++)
{
chercheRef(ref, liste);
}
}
else
{
String nom = ""+rep;

if(nom.equals(ref))
{
fichierTrouve = rep;
return(true);
}
}
return(false);
}

fichierTrouve est une variable membre de type File
destCourante est une variable membre de type JLabel

Donc voilà si quelqu'un peu à partir de ca me dire ce qui peut être suceptible de clocher ca serait cool.

L'erreur que j'ai est un java.lang.NullPointerException

Et voici l'erreur en entière (histoire de faire joli) :

java.lang.NullPointerException
at RechercheImage.chercheRef(RechercheImage.java:221)
at RechercheImage.chercheRef(RechercheImage.java:223)
at RechercheImage$BoutonsListener.actionPerformed(RechercheImage.java:272)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

et n'étant pas une bête en java j'avou que je suis un peu dépassé je commence à avoir mal au crâne en fait.

merci pour les réponses que vous pourrez m'apporter.

Autres pages sur : moteur recherche fichier java

Lassé par la pub ? Créez un compte

Tu peux peut-être t'inspirer de çà (recherche des répertoires "database" contenus dans un répertoire donné)

/**
* findDatabases - Finds list of databases (absolute paths) contained in specified file.
* @param path
* @param depth
* @return
* @throws VSTException
*/
private List findDatabases(String path, int depth) throws VSTException {
List paths = new ArrayList();
File file = null;
int depth_MAX = 5;
depth = (depth < depth_MAX ? depth : depth_MAX);
File[] files = (new File(path)).listFiles(new FileFilter() {
public boolean accept(File arg0) {
return (
(arg0.getName().equals("database")) && arg0.isDirectory());
}
});
File[] otherFiles = (new File(path)).listFiles(new FileFilter() {
public boolean accept(File arg0) {
return (
!(arg0.getName().equals("database")) && arg0.isDirectory());
}
});
for (int i = 0; i < files.length; i++) {
file = files;
paths.add(file.getAbsolutePath());
}
for (int i = 0; i < otherFiles.length; i++) {
file = otherFiles;
paths.addAll(findDatabases(file.getAbsolutePath(), depth - 1));
}
return paths;
}
Lassé par la pub ? Créez un compte