[File Object] : Utilisation isFile & isDirectory

koala59230 Messages postés 11 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 mars 2007 - 22 août 2003 à 15:34
koala59230 Messages postés 11 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 mars 2007 - 29 août 2003 à 23:16
Bonjour à tous,
Tout d'abord désolez si ma question parait simple mais je ne suis qu'un débutant qui apprend apprend appppprennnddd.. :shy)

Voic ma question j'ai le source suivant :
public class Test {

public static void main( final String[] args ) {
File path = new File ( "c:\" );

String[] list;
list = path.list ();

for ( int i = 0; i < list.length; i++ )
{
String g = new File ( list[i] ).getAbsolutePath ();
System.out.println ( "\n---->" + list[i] + "," + g );
File f = new File ( g );
System.out.println (
" Can read: " + f.canRead () +
"\n Can write: " + f.canWrite () +
"\n getName: " + f.getName () +
"\n getParent: " + f.getParent () +
"\n getPath: " + f.getPath () +
"\n length: " + f.length () +
"\n lastModified: " + f.lastModified () +
"\n length: " + f.length () +
"\n isAbsolute: " + f.isAbsolute () +
"\n isDirectory: " + f.isDirectory () +
"\n isFile: " + f.isFile () );
}
}
}

A l'affichage tous les résultats sont identiques, par contre que je met un fichier ou répertoire en dur à la ligne :
String g = new File ( list[i] ).getAbsolutePath ();
la cela fonctionne !!!

Est ce que quelqu un peut m'aider :question)
Merci par avance
@+

4 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 août 2003 à 19:28
eh, alors c'est quand que cela fonctionne pas ??? soit j'ai pas vu ta question, soit tu t'es mal exprimer en la disant
0
koala59230 Messages postés 11 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 mars 2007
23 août 2003 à 12:00
Quand je dis que les Resultats sont identiques. Cela veut dire par exemple que pour un fichier isFile est a faux que la taille est a zero etc... etc...
desolez si g pô etait trop claire. :big)
0
mimah Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 11 novembre 2003
28 août 2003 à 14:15
Salut,

En effet ça ne peut pas marcher comme tu l'as fait.
Tu recréé un objet File à chaque fois à partir du absolutePath mais ce n'est qu'un objet donc virtuel, il ne correspond pas à un fichier physique.
La façon la plus simple de faire ce que tu veux faire est la suivante :

public class Test {

public static void main( final String[] args ) {
File path = new File ( "c:\" );

File[] list = path.listFiles();

for ( int i = 0; i < list.length; i++ )
{
File f = list[i];
System.out.println (
" Can read: " + f.canRead () +
"\n Can write: " + f.canWrite () +
"\n getName: " + f.getName () +
"\n getParent: " + f.getParent () +
"\n getPath: " + f.getPath () +
"\n length: " + f.length () +
"\n lastModified: " + f.lastModified () +
"\n length: " + f.length () +
"\n isAbsolute: " + f.isAbsolute () +
"\n isDirectory: " + f.isDirectory () +
"\n isFile: " + f.isFile () );
}
}
}


La tu ne recréés pas un objet File mais tu utilises les objets renseignés par la fonction listFiles.

Bon courage!
0
koala59230 Messages postés 11 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 mars 2007
29 août 2003 à 23:16
bonsoir,

:approve) oky doky, impect et merci
:big)
@+
0
Rejoignez-nous