Messages
du sujet
Exemple com/eteks/outils/OutilsFichier.java |
toniooooo
Ville : Evry 91
Membre depuis : 11 avr. 2006
Messages : 3
|
11 avr. 2006 à 16:06
Bonjour, je me suis remis au Java avec cet excellent ouvrage. Tout allait bien, jusqu'à ce que j'arrive à la page 169. J'ai un peu de mal avec la récursivité et surtout j'ai du mal à comprendre les lignes:
" File [] fichiers = new File [fichierTries.size()];
fichiersTries.toArray(fichiers);"
A quel moment l'objet fichiersTries instance de la classe TreeSet s'incrémente cad
qu'il récupère la liste des fichiers triés...
Il y a surcharge de la méthode chercheFichiersDossier, mais pourquoi avoir passer en paramètre de cette méthode de classe l'objet fichiers de type Treeset)
C'est la mon problème, je ne comprends pas quand est ce que le paramètre fichiers dans cette méthode est t'il solicité. On le passe en paramètre mais quand est ce qu'il s'agrémente qu'il prend une valeur?? Je suis perdu...lol
|
Manu
Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
|
11 avr. 2006 à 18:56
> j'ai du mal à comprendre les lignes:
> File [] fichiers = new File [fichiersTries.size()];
> fichiersTries.toArray(fichiers);
Ces deux lignes recopie l'ensemble des fichiers de "fichierTries" dans le tableau "fichiers". La première ligne crée un tableau capable de contenir fichiersTries.size() références de type File. La seconde ligne recopie dans ce tableau tous les références que contient fichiersTries dans l'ordre alphabétique.
> A quel moment l'objet fichiersTries instance de la classe TreeSet s'incrémente cad
> qu'il récupère la liste des fichiers triés...
> Il y a surcharge de la méthode chercherFichiersDossier, mais pourquoi avoir passer
> en paramètre de cette méthode de classe l'objet fichiers de type Treeset)
La méthode chercherFichiersDossier avec trois paramètres reçoit en premier paramètre l'ensemble fichiersTries qui est vide au départ. Dans cette méthode, cet ensemble s'appelle "fichiers" et les fichiers d'extension voulue sont ajoutés à cet ensemble à la ligne "fichiers.add (chemins [i]);".
En fait, je pense que vous confondez la variable locale "fichiers" de type File [] de la première méthode et le paramètre "fichiers" de la seconde méthode qui correspond à la variable fichiersTries.
Désolé, je n'ai pas fait attention que l'identificateur "fichiers" est utilisé deux fois dans ce programme sous deux types différents (mais ça ne l'empêche pas de fonctionner correctement). C'est vrai que pédagogiquement parlant, ça n'est pas très efficace !
Bon courage pour la suite... --- Manu (moderator/modérateur)
|
toniooooo
Ville : Evry 91
Membre depuis : 11 avr. 2006
Messages : 3
|
14 avr. 2006 à 10:14
Merci pour votre réponse,
J'ai fait un programme pour explorer un fichier.
Il y a quand même quelque chose que je comprends pas
Un moment j'ai un dossier qui contient 2 fichiers. Normalement, le programme ne dervrait pas re rentrer dans le for car la longueur du tableau = 2 (vérifier en l'affichant avec la variable sol et pourtant il rentre et remonte un dossier au dessus et m'affiche sol=8. Je comprends plus rien!!.
Voici l'arborescence de mon dossier sitecss:
sitecss/css/
sitecss/images/
sitecss/javascript/
sitecss/asso.html
sitecss/histoire.html
sitecss/index.html
sitecss/media.html
sitecss/test.doc
sitecss/css/ie.css
sitecss/css/nt.css
...etc juste avec cette arboresence je peux poser mon problème
sol = 2 quand il rentre dans le sous-dossier sitecss/css et ensuite il rentre encore dans la boucle et passe sol à sol = 8 ??!!
Mon programme:
import java.io.*;
import javax.swing.JOptionPane;
class Exploration
{
public static void main (String [] args)
{
File toto= new File("sitecss");
Exploration.recu(toto);
System.exit(0);
}
private static void recu(File toto)
{
String couin ="couin"+toto.toString();
JOptionPane.showMessageDialog(null,couin);
File [] tata= toto.listFiles();
JOptionPane.showMessageDialog(null,tata);
for (int i = 0 ; i<tata.length ; i++)
{
int sol = tata.length;
JOptionPane.showMessageDialog(null,sol);
if (tata[i].isDirectory())
{
toto= new
File(tata[i].toString());
JOptionPane.showMessageDialog(null,toto);
recu (toto);
}
else
JOptionPane.showMessageDialog(null,tata[i]);
}
}
}
|
toniooooo
Ville : Evry 91
Membre depuis : 11 avr. 2006
Messages : 3
|
17 avr. 2006 à 14:58
Personne pour m'aider?...
|