Enregistrer un système de fichier dans une base de données
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008
-
25 juil. 2008 à 13:20
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008
-
6 août 2008 à 14:25
Salut, j'ai un projet plutot embettant.Je dois enregistrer l'arborescence d'un disque dans une base de données (j'utilise mysql) et pouvoir la restituer à la demande dans un "tree (jsp )" au niveau de mon application web, tout ceci en tenant compte des droits d'accès utilisateurs. Je voudrais déjà pouvoir automatiser l'enregistrement des fichiers du disque dans la base de données. Si quelqu'un a une idée ou une méthode pour y arriver çà m'aiderais beaucoup. Pour l'affichage dans un tree j'essaie d'adapter les codes que j'ai pu trouver sur le site mais ils sont tous en swing (Jtree) il n'y aurait pas plus simple? ... Sos c vraiment important.
Merci d'avance
habs"Développer c'est avant tout un plaisir..."
A voir également:
Enregistrer un système de fichier dans une base de données
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008 27 juil. 2008 à 13:26
Pour préciser un peu mieux mon problème actuel,je ne sais pas sous quel architecture stocker mes fichiers et répertoires dans la base de données.Est-ce qu'il faut créer une table pour chaque répertoire ou bien il y a une structure qui le permet déjà.Merci de me débloquer!
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 27 juil. 2008 à 13:38
Salut,
c'est très intéressant comme projet !
ok, j'ai une idée : je peux modéliser une arborescence avec ces tables :
repertoire (idRep, nomRep, droits)
est_un_sous_repertoire_de (idSousRep, idRep)
fichier (idFichier, nomFichier, droits, type)
est_sous (idFichier, idRep)
j'espère que ça t'apportera de l'aide..
Bonne courage
_____________________
Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
http://books.go%3C/body
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008 28 juil. 2008 à 18:29
Bonjour,Merci pour ta réponse.Je commençais aussi à penser à un tel modèle mais le tien est plus élaboré (j'avais pas pensé à la relation est_sous_rep_de) parcontre je pense qu'au lieu la relation "est_sous" on pourrait juste mettre une clé étrangère pour les fichiers du genre
[ fichiers(id_fich,nom_fich,droits,taille,type,nom_rep) ]
çà permettrait déjà d'éviter des fichiers fantômes (sans répertoires) d'un autre coté un ami m'a proposé un arbre de dossiers. Mais je n'ais pas encore exploré l'option, tu en penses quoi?
Merci encore
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 28 juil. 2008 à 20:36
Salut,
oui en fait ton idée à propos de la clé étrangère est plus safe..
mais au lieu de mettre nomRep comme clé étrangère mets idRep (règle de base dans la conception)..
bonne continuation..
_____________________
Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
http://books.go%3C/body
Vous n’avez pas trouvé la réponse que vous recherchez ?
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008 28 juil. 2008 à 21:29
Merci, effectivement. Si non pour le listage dans une page web, l'utilisation des Tree avec jsp tu n'aurais pas une idée un exemple ou un tuto?Autrement c pas grave. Je commencerai déjà à écrire le code pour le stockage, les utilisateurs et les droits. Bref le programme d'une bonne longue soirée. Merci encore et à bientôt.
En fait, je voudrai connaître plus sur ton projet : c'est dans le cadre d'un PFE ? tu essayes de faire une sorte d'application de sauvegarde ?
_____________________
Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
http://books.go%3C/body
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008 29 juil. 2008 à 10:20
En fait c'est un projet de stage.Une application web pour un intranet qui sera déployée sur un serveur interne et adressée en local. L'application servira à faire une administration partagée du serveur suivant des droits d'accès des utilisateurs.
Pour les tutoriels , comme je le disais plus haut, j'ai déjà exploré quelques solutions avec JTree (swing) mais j'ai des difficultés à les adapter à mon application web. Tu vois un peu ce n'est pas le même contexte. Je sais que l'objet Tree existe pour java (jsp, jsf) par exemple pour visual jsf on a la classe "java.webjuif.Tree" .Mais je n'arrive pas à trouver pas de bonne documentation sur comment l'utiliser. Merci quand même pour les tutos.
habitech
Messages postés7Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 6 août 2008 6 août 2008 à 14:25
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:
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 (.......)