Page d'accueilFindIt !Contact Cahier Java

Cahier Java

 Forum Java

Ce forum est dédié à l'ouvrage Bien programmer en Java 7, ainsi qu'aux éditions précédentes des Cahiers du Programmeur Java.
Utilisez-le pour toute demande d'information supplémentaire ou pour toute suggestion au sujet de ces ouvrages.
Pour les informations relatives au Cahier du programmeur Swing, merci d'utiliser le forum qui lui est dédié.
Vous pouvez consulter ces forums librement. Pour y participer, inscrivez-vous tout d'abord.

Sujets Messages récents Identification Inscription
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?...


Page d'accueilFindIt !ContactDébut de la page

© Copyrights 1997-2014 eTeks - Tous droits réservés

Cahier Java