Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus si
son argument est un chemin absolu ou un tableau de chemins relatifs si son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus si
son argument est un chemin absolu ou un tableau de chemins relatifs si son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:\Essai\Suite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: \Essai\Suite1\Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus si
son argument est un chemin absolu ou un tableau de chemins relatifs si son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus
si
son argument est un chemin absolu ou un tableau de chemins relatifs si
son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Tu dois bien utiliser, les \ dans une chaîne de caractère ou même dans la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java depuis
plus longtemps que moi.
Bernard
"beotien" <sergetber@hotmail.com> a écrit dans le message de news:
4016b52a$0$6970$7a628cd7@news.club-internet.fr...
Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus
si
son argument est un chemin absolu ou un tableau de chemins relatifs si
son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:\Essai\Suite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: \Essai\Suite1\Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins absolus
si
son argument est un chemin absolu ou un tableau de chemins relatifs si
son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" a écrit dans le message de
news:4016d9fd$0$310$Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
sison argument est un chemin absolu ou un tableau de chemins relatifs si
sonargument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
deschemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec \
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" <koninckxbernard@excite.com> a écrit dans le message de
news:4016d9fd$0$310$ba620e4c@news.skynet.be...
Bonjour,
Tu dois bien utiliser, les \ dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" <sergetber@hotmail.com> a écrit dans le message de news:
4016b52a$0$6970$7a628cd7@news.club-internet.fr...
Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
si
son argument est un chemin absolu ou un tableau de chemins relatifs si
son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:\Essai\Suite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: \Essai\Suite1\Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" a écrit dans le message de
news:4016d9fd$0$310$Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
sison argument est un chemin absolu ou un tableau de chemins relatifs si
sonargument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
deschemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" a écrit dans le message de
news:4016d9fd$0$310$Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
sison argument est un chemin absolu ou un tableau de chemins relatifs si
sonargument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
deschemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec \
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" <koninckxbernard@excite.com> a écrit dans le message de
news:4016d9fd$0$310$ba620e4c@news.skynet.be...
Bonjour,
Tu dois bien utiliser, les \ dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" <sergetber@hotmail.com> a écrit dans le message de news:
4016b52a$0$6970$7a628cd7@news.club-internet.fr...
Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
si
son argument est un chemin absolu ou un tableau de chemins relatifs si
son
argument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:\Essai\Suite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: \Essai\Suite1\Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
des
chemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Merci pour ta reponse, mais je n' ai pas avance. En effet quoi que je
mette au debut du chemin relatif entraine une regression: refus de compile
avec : ou . ou . , incapacite de reconstituer le chemin absolu avec
J'
en ai conclu que la formulation initiale des chemins etait correcte, et la
question reste entiere.
Mais ta reponse appelle une autre question de ma part: en dehors de la
formulation des chemins, ecrits pour Windows et "hardcoded" pour faire
court, y a t il autre chose qui te donne a penser que la classe Test n'
est
pas portable sur un autre systeme, et si oui quoi?
Serge
PS: l' arborescence d' essai a ete cree avec Explorateur Windows, la
representation DOS que j' en ai donne dans mon mail est neutre.
"Bernard Koninckx" a écrit dans le message de
news:4016d9fd$0$310$Bonjour,
Tu dois bien utiliser, les dans une chaîne de caractère ou même dans
la
définition d'un caractère. C'est en quelque sorte un caractère
d'achappement. Tu as d'autres séquences telles que
n = nouvelle ligne
r = retour chariot
t = tabulation
' = quote
En espérant t'avoir répondu.
Je ne sais pas si la portabilité d'un système à un autre est ton
principal
soucis. Si c'est le cas, ton application n'est pas portable à d'autres
OS,
je pense. Il faudrait avoir l'avis de gens qui développent en Java
depuis
plus longtemps que moi.
Bernard
"beotien" a écrit dans le message de news:
4016b52a$0$6970$Bonjour,
J' ai des soucis avec la methode listFiles() de la classe File.
Il me semble qu' elle devrait me renvoyer un tableau de chemins
absolus
sison argument est un chemin absolu ou un tableau de chemins relatifs si
sonargument est un chemin relatif.
J 'ai ecrit les qq lignes ci dessous apres avoir prelalablement cree
l'
arborescence d' essai:
C:EssaiSuite1Suite2Suite3_1 avec Suite3_2 comme frere.
import java.io.*;
public class Test{
public static void main (String[] args) throws IOException{
System.setProperty("user.dir" , "C:EssaiSuite1"); //chemin
racine
System.out.println("user.dir: "+System.getProperty("user.dir"));
//verif
File c=new File("Suite2"); //chemin relatif
System.out.println("Absolute File:"+c.getAbsoluteFile());
System.out.println("IsDirectory:"+(c.getCanonicalFile()).isDirectory());
File[]arr=c.listFiles();
for (int i=0;i<arr.length;i++){
System.out.println("arr:"+arr[i]+" "+arr.length);}
}
}
La ligne AbsoluteFile permet de verifier que le chemin complet est
bien
recree, mais l'avant derniere ligne
provoque un RunTime error NullPointerException.
Par contre si je reecris la ligne:
File c=new File("C: EssaiSuite1Suite2"); //chemin absolu
cela fonctionne correctement.
J' ai redefini la methode et obtenu ce que je voulais: le tableau arr
deschemins relatifs.
Alors est ce que je marche a cote de mes pompes ou bien est ce que la
methode est buggee ?(mais ca se saurait!)
Si elle n' est pas buggee, comment obtenir un tableau de chemins
relatifs?
Merci de votre aide.
PS: systeme Windows, Java version 1.3.0_02
Bonjour,
Le tableau de fichiers que tu sembles vouloir trouver est null.
Il est dès lors impossible d'essayer de le parcourrir avec la boucle for,
puisqu'il n'est pas initialisé.
Pour être sûr de pouvoir parcourrir ce tableau sans dommage tu devrais
inclure ta boucle for dans une instruction if
if (arr != null){
for (int i = 0; i < arr.length ; i ++){
System.out.println(...);
}
}
J'ai cherché un petit peu plus loin ...
au lieu de la ligne de code
File[]arr=c.listFiles();
essaye
File[]arr=c.getCanonicalFile().listFiles();
Normalement ça devrait fonctionner.
Bernard
Bonjour,
Le tableau de fichiers que tu sembles vouloir trouver est null.
Il est dès lors impossible d'essayer de le parcourrir avec la boucle for,
puisqu'il n'est pas initialisé.
Pour être sûr de pouvoir parcourrir ce tableau sans dommage tu devrais
inclure ta boucle for dans une instruction if
if (arr != null){
for (int i = 0; i < arr.length ; i ++){
System.out.println(...);
}
}
J'ai cherché un petit peu plus loin ...
au lieu de la ligne de code
File[]arr=c.listFiles();
essaye
File[]arr=c.getCanonicalFile().listFiles();
Normalement ça devrait fonctionner.
Bernard
Bonjour,
Le tableau de fichiers que tu sembles vouloir trouver est null.
Il est dès lors impossible d'essayer de le parcourrir avec la boucle for,
puisqu'il n'est pas initialisé.
Pour être sûr de pouvoir parcourrir ce tableau sans dommage tu devrais
inclure ta boucle for dans une instruction if
if (arr != null){
for (int i = 0; i < arr.length ; i ++){
System.out.println(...);
}
}
J'ai cherché un petit peu plus loin ...
au lieu de la ligne de code
File[]arr=c.listFiles();
essaye
File[]arr=c.getCanonicalFile().listFiles();
Normalement ça devrait fonctionner.
Bernard