Bonjour à tous,j'essaie de trouver une méthode pour enregistrer le contenu de mon disque dur dans une base de données du moins les noms des différents fichiers et répertoires. Voici mes tables:
fichiers(id,nom,taille,chemin,level,groupe,chParent)
repertoires(id,nom,taille,chemin,level,groupe,chParent) //chParent=chemin Parent
level et groupe son juste des entiers que je compte utiliser pour des droits d'accès par la suite.D'ailleurs ils sont à 0 par défaut.
J'ai créé pour cela une méthode que je pensais infaillible jusqu'aujourd'hui! Premier test 4 enregistrements et erreur!! Quelqu'un aurait-il une idée de comment procéder?J'ai vraiment besoin d'aide sur ce coup! Merci pour toute contribution

.
Méthode: c'est une méthode récursive
public void uptoDate(){
//On renouvelle les tables avant de les remplir à nouveau (plus tard)
//on récupère les lecteurs
_roots=File.listRoots();
for(int i=0;i<_roots.length;i++){
File root=lecture(_roots[i]);!!!! (méthode récursive) if(!listeR.equals("")) ajouter("repertoires",listeR);
if(!listeF.equals("")) ajouter("fichiers",listeF);
listeF=listeF+",('"+root.getName()+"',"+root.getTotalSpace()+",'"+root.getAbsolutePath()+"',"+0+","+0+",'"+root.getParent()+"')";
ajouter("fichier", listeF);
}
}
public File lecture(File root){
//on ajoute les répertoires
CheminR=root.getAbsolutePath();
listeR="('"+root.getName()+"',"+root.getTotalSpace()+",'"+CheminR+"',"+0+","+0+",'"+getParent(CheminR)+"')";
ajouter("repertoires",listeR);
//on récupère la liste des fichiers et des sous répertoires
File[] list =root.listFiles();
if(list!=null){
//pour chaque répertoires on appelle cette méthode ==> récursivité
for(int j=0;j<list.length;j++){
File file=null;
if(list[j].isDirectory()){
file=lecture(list[j]);//on ajoute les fichiers
CheminF=file.getAbsolutePath();(l'erreur est indiquée ici) listeF="('"+file.getName()+"',"+file.getTotalSpace()+",'"+CheminF+"',"+0+","+0+",'"+getParent(CheminF)+"')";
ajouter("fichiers",listeF);
}else{
return list[j];
}
}
}
return finRep;
}
public void ajouter(String type,String liste){
connect.ajouterFile(type, liste); //à priori tout ce passe bien ici!
}
erreur!:
java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
(...................)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.NullPointerException
at lanServer.Beans.ActionBean.lecture(ActionBean.java:164)
at lanServer.Beans.ActionBean.uptoDate(ActionBean.java:143) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
(....................)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
... 40 more
#{actionBean.uptoDate}: java.lang.NullPointerException
javax.faces.FacesException: #{actionBean.uptoDate}: java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
at (.......)
Merci encore pour toute contribution

.
habs"Développer c'est avant tout un plaisir...
"