codesambinfo
Messages postés8Date d'inscriptionjeudi 22 octobre 2009StatutMembreDernière intervention11 novembre 2009 11 nov. 2009 à 01:53
Merci c'est bien pour un debut!!!
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 8 févr. 2009 à 15:30
bizarre, j'ai pas pousser les tests mais bon tant que ca marche^^
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 8 févr. 2009 à 14:19
Désolé de t'embeter mais
Ca marche : il n'y a plus d'erreurs et tous les dossiers et les fichiers ont été trouvés.
mais il se trouve que des fois ça affiche un dossier "deux fois"
ici le dossier "D:\Test\2-testSans\23-TestAsans" revient une seconde fois
Mais bon l'essentiel c'est que ça affiche tout, alors ça me va.
Merci
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 29 janv. 2009 à 10:43
c'est bon j'ai trouve.
je l'ai remplacer dans le code actuel. la modif est à la ligne 36.
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 27 janv. 2009 à 11:19
Ok!
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 27 janv. 2009 à 10:21
je reprend mon code de mon coté, je fais les modif et je te tien au cours mais ca va prendre un peu de temps car je suis actuelement sur d'autre codes ^^
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 26 janv. 2009 à 17:43
je vais me débrouiller alors
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 26 janv. 2009 à 16:34
je crois que c'est normal car ca répertorie les fichiers et non les dossiers
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 25 janv. 2009 à 18:09
Ca marche un peu mais pas totalement:
çà ne liste pas tous le répertoires (surtout celui qui suit directement un dossier vide :
voila le message de sortie :
run:
Repertoire D:\Test chargé.
Repertoire D:\Test\Premier Dossier avec contenu chargé.
Repertoire D:\Test\Premier Dossier sans contenu chargé.
Repertoire D:\Test\Troisième Dossier avec contenu chargé.
Repertoire D:\Test\Troisième Dossier avec contenu\Deuxieme sous contenu Dossier avec contenu chargé.
BUILD SUCCESSFUL (total time: 0 seconds)
alors que le répertoire que je liste est comme ceci :
D:\TEST
+---Premier Dossier avec contenu
+---Premier Dossier sans contenu
+---Second Dossier avec contenu
¦ +---Premier sous contenu Dossier avec contenu
+---Troisième Dossier avec contenu
+---Deuxieme sous contenu Dossier avec contenu
Comment faire ?
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 25 janv. 2009 à 16:16
C'est bien ce que je pensais l'erreur est a la ligne 53 de la condition ligne 28
donc la tu fais simplement une condition que si fichier[i] est null alors tu ne fais pas cette action
attention :
etant donnée que c'est un fonction récursive (c a d qui s'appelle elle meme) je pense que la condition doit etre faite a la ligne avant le do {
en clair :
# ...
# fichiers = directoryToScan.listFiles();
# int i = 0;
if (fichier.length > 0){ // si le dossier actuel contient des fichiers alors
# do { ...
...
} while (i < fichiers.length);
}
// fin si
et la ca devrai etre bon
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 25 janv. 2009 à 14:29
C'est vrai : l'exception se situe aussi sur :
" File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
il y a aussi un warning sur : ce même " File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
qui dit :"accessing static methode listeDeFichiersDansDossierEtSousDossier"
Je dois avouer que je suis très nul en java et je n'ai fait qu'un copier-coller de ton code car il m'est d'un grand secours.
Et que j'ai aussi beaucoup du mal à comprendre la récursivité.
le message complet étant : (j'utilise Netbeans)
run:
Repertoire D:\Test chargé.
Repertoire D:\Test\Dossier avec contenu chargé.
Repertoire D:\Test\Dossier sans contenu chargé.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at listage.listerFichier.listeDeFichiersDansDossierEtSousDossier(listerFichier.java:28)
at listage.listerFichier.listeDeFichiersDansDossierEtSousDossier(listerFichier.java:53)
at listage.Main.main(Main.java:23)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
La ligne 28 :"if (fichiers[i].isDirectory()) {"
La ligne 53 : "File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
et la ligne 23 : "coul.listeDeFichiersDansDossierEtSousDossier("D:\\Test");" (c'est l'instanciation que j'ai faite)
Que faire?!
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 25 janv. 2009 à 12:54
j'ai farfouillé sur le web pour comprendre l'erreur et j'ai trouvé ca :
- java.lang.IndexOutOfBoundsException : Un indice (sur un tableau, une chaîne) ou un intervalle défini par deux indices ont dépassé les limites inférieures ou supérieures. Les classes suivantes dérivent de cette classe d'exception :
- java.lang.ArrayIndexOutOfBoundsException pour les tableaux (indice négatif ou supérieur ou égal à la taille du tableau).
- java.lang.StringIndexOutOfBoundsException pour les chaînes de caractères.
dans notre cas c'est le tableau qui dépasse les limites supérieures, je suppose.
mais je ne vois pas pourquoi a cette ligne..
Peux tu me donner le message d'erreur complet si ce n'est pas le cas merci
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 25 janv. 2009 à 12:41
tu est sure que c'est sur cette ligne??
car si je traduit la ligne il vérifie si c'est ou non un dossier (qu'il soit vide ou pas)
je pense que l'erreur devrait se faire ici :
"listerFichier listageDansRepertoire = new listerFichier();
File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
la je ne sais quoi dire ^^
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 25 janv. 2009 à 00:36
tout marche bien quand il n'y a aucun répertoire ou sous répertoire non vide. mais dès qu'un répertoire ne contient rien ça me donne java.lang.ArrayIndexOutOfBoundsException: 0
sur la ligne = "if (fichiers[i].isDirectory()) { "
et ça s'arrete.
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 24 janv. 2009 à 19:02
a quel niveau ?
bilbokay
Messages postés7Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention 8 février 2009 24 janv. 2009 à 15:12
Ca me donne une erreur pour les dossiers vides.
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 11 déc. 2008 à 10:26
si tu as un probleme tu sais ou chercher maintenant..
cs_sanon
Messages postés1Date d'inscriptionvendredi 5 décembre 2008StatutMembreDernière intervention10 décembre 2008 10 déc. 2008 à 19:03
je les adore, je me trouve dans un tres bon staff je vus demande de continuer a m'aider a programme!! je les trouve tres bon surtout pour moi. merci
cs_petifa
Messages postés215Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention10 mars 2014 3 oct. 2008 à 16:58
Et bien c'est l'occasion d'en apprendre d'autres :) Si tu as besoin de conseils demande moi ou regarde sur les codes sources en cherchant ArrayList
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 3 oct. 2008 à 15:24
je l'ai fais avec les outils que je connais ^^ voila pourquoi
cs_petifa
Messages postés215Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention10 mars 2014 3 oct. 2008 à 15:21
slt,
pourquoi ne pas avoir mis cette fonction avec ton autre source pour chercher un fichier, a vrai dire lister les dossier et sous dossier si tu mettais la possibilité de rechercher en même temps; ça deviendrai intéressant. Et tu pourrais faire un "pannel" de fonctions
sinon pour ton code tu te complique vraiment la vie, ton code n'est vraiment pas optimisé, que ce soit question mémoire (tu alloues des tableau et les réalloue par la suite, utilise des tableau temporaires....)
Pourquoi ne pas retourner un Arraylist de File, ça serait bien plus pratique comme ça met les éléments à la queue leu leu et et les éléments de chaque sous dossier, en utilisant la récursivité.
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 1 oct. 2008 à 17:58
lol
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 1 oct. 2008 à 17:48
le match :(?i)blabla.*" => fichier commençant par "blabla"
Desole je bosse a cote et je m'emmele les pinceaux
kryshnar
Messages postés44Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention26 février 2009 1 oct. 2008 à 17:43
j'ai jamais utiliser les pattern...
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 1 oct. 2008 à 17:34
lol dommage que t'ai pas garde l'idee de pattern pour les fichiers, c'est ce qui faisait que ta source etait interressante :P
11 nov. 2009 à 01:53
8 févr. 2009 à 15:30
8 févr. 2009 à 14:19
Ca marche : il n'y a plus d'erreurs et tous les dossiers et les fichiers ont été trouvés.
mais il se trouve que des fois ça affiche un dossier "deux fois"
Par exemple voici ce que ça donne chez moi:
Repertoire D:\Test chargé.
Repertoire D:\Test\1-Testavec chargé.
Repertoire D:\Test\2-testSans chargé.
Repertoire D:\Test\2-testSans\22-TestAvec chargé.
Repertoire D:\Test\2-testSans\23-TestAsans chargé.
Repertoire D:\Test\2-testSans\24-TestAvec chargé.
Repertoire D:\Test\2-testSans\23-TestAsans chargé.
Repertoire D:\Test\3-TestAvec chargé.
ici le dossier "D:\Test\2-testSans\23-TestAsans" revient une seconde fois
Mais bon l'essentiel c'est que ça affiche tout, alors ça me va.
Merci
29 janv. 2009 à 10:43
je l'ai remplacer dans le code actuel. la modif est à la ligne 36.
27 janv. 2009 à 11:19
27 janv. 2009 à 10:21
26 janv. 2009 à 17:43
26 janv. 2009 à 16:34
25 janv. 2009 à 18:09
çà ne liste pas tous le répertoires (surtout celui qui suit directement un dossier vide :
voila le message de sortie :
run:
Repertoire D:\Test chargé.
Repertoire D:\Test\Premier Dossier avec contenu chargé.
Repertoire D:\Test\Premier Dossier sans contenu chargé.
Repertoire D:\Test\Troisième Dossier avec contenu chargé.
Repertoire D:\Test\Troisième Dossier avec contenu\Deuxieme sous contenu Dossier avec contenu chargé.
BUILD SUCCESSFUL (total time: 0 seconds)
alors que le répertoire que je liste est comme ceci :
D:\TEST
+---Premier Dossier avec contenu
+---Premier Dossier sans contenu
+---Second Dossier avec contenu
¦ +---Premier sous contenu Dossier avec contenu
+---Troisième Dossier avec contenu
+---Deuxieme sous contenu Dossier avec contenu
Comment faire ?
25 janv. 2009 à 16:16
donc la tu fais simplement une condition que si fichier[i] est null alors tu ne fais pas cette action
attention :
etant donnée que c'est un fonction récursive (c a d qui s'appelle elle meme) je pense que la condition doit etre faite a la ligne avant le do {
en clair :
# ...
# fichiers = directoryToScan.listFiles();
# int i = 0;
if (fichier.length > 0){ // si le dossier actuel contient des fichiers alors
# do { ...
...
} while (i < fichiers.length);
}
// fin si
et la ca devrai etre bon
25 janv. 2009 à 14:29
" File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
il y a aussi un warning sur : ce même " File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
qui dit :"accessing static methode listeDeFichiersDansDossierEtSousDossier"
Je dois avouer que je suis très nul en java et je n'ai fait qu'un copier-coller de ton code car il m'est d'un grand secours.
Et que j'ai aussi beaucoup du mal à comprendre la récursivité.
le message complet étant : (j'utilise Netbeans)
run:
Repertoire D:\Test chargé.
Repertoire D:\Test\Dossier avec contenu chargé.
Repertoire D:\Test\Dossier sans contenu chargé.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at listage.listerFichier.listeDeFichiersDansDossierEtSousDossier(listerFichier.java:28)
at listage.listerFichier.listeDeFichiersDansDossierEtSousDossier(listerFichier.java:53)
at listage.Main.main(Main.java:23)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
La ligne 28 :"if (fichiers[i].isDirectory()) {"
La ligne 53 : "File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
et la ligne 23 : "coul.listeDeFichiersDansDossierEtSousDossier("D:\\Test");" (c'est l'instanciation que j'ai faite)
Que faire?!
25 janv. 2009 à 12:54
- java.lang.IndexOutOfBoundsException : Un indice (sur un tableau, une chaîne) ou un intervalle défini par deux indices ont dépassé les limites inférieures ou supérieures. Les classes suivantes dérivent de cette classe d'exception :
- java.lang.ArrayIndexOutOfBoundsException pour les tableaux (indice négatif ou supérieur ou égal à la taille du tableau).
- java.lang.StringIndexOutOfBoundsException pour les chaînes de caractères.
dans notre cas c'est le tableau qui dépasse les limites supérieures, je suppose.
mais je ne vois pas pourquoi a cette ligne..
Peux tu me donner le message d'erreur complet si ce n'est pas le cas merci
25 janv. 2009 à 12:41
car si je traduit la ligne il vérifie si c'est ou non un dossier (qu'il soit vide ou pas)
je pense que l'erreur devrait se faire ici :
"listerFichier listageDansRepertoire = new listerFichier();
File[] fichiersTempo = listageDansRepertoire.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());"
la je ne sais quoi dire ^^
25 janv. 2009 à 00:36
sur la ligne = "if (fichiers[i].isDirectory()) { "
et ça s'arrete.
24 janv. 2009 à 19:02
24 janv. 2009 à 15:12
11 déc. 2008 à 10:26
10 déc. 2008 à 19:03
3 oct. 2008 à 16:58
3 oct. 2008 à 15:24
3 oct. 2008 à 15:21
pourquoi ne pas avoir mis cette fonction avec ton autre source pour chercher un fichier, a vrai dire lister les dossier et sous dossier si tu mettais la possibilité de rechercher en même temps; ça deviendrai intéressant. Et tu pourrais faire un "pannel" de fonctions
sinon pour ton code tu te complique vraiment la vie, ton code n'est vraiment pas optimisé, que ce soit question mémoire (tu alloues des tableau et les réalloue par la suite, utilise des tableau temporaires....)
Pourquoi ne pas retourner un Arraylist de File, ça serait bien plus pratique comme ça met les éléments à la queue leu leu et et les éléments de chaque sous dossier, en utilisant la récursivité.
1 oct. 2008 à 17:58
1 oct. 2008 à 17:48
Desole je bosse a cote et je m'emmele les pinceaux
1 oct. 2008 à 17:43
1 oct. 2008 à 17:34