Hyperpenguin
Messages postés16Date d'inscriptionmercredi 23 avril 2008StatutMembreDernière intervention30 juillet 2009
-
30 mai 2008 à 15:52
Hyperpenguin
Messages postés16Date d'inscriptionmercredi 23 avril 2008StatutMembreDernière intervention30 juillet 2009
-
2 juin 2008 à 09:02
Bonjour, je développe une application et une de mes méthode doit servir a classer des fichiers dans un arborescence, et donc après un petit moment d'aprehension je me suis lancé et j'utilise donc un JTree, que je dois remplir a partir de Chaine de caractere representant le chemin d'accès a mon fichier, de type:
data\dossier1\dossier2\fichier.ext
et je veux utiliser la classe Scanner pour separer les différents "dossiers" pour les ajouter en tant que DefaultMutableTreeNode dans mon DefaultTreeModel, cependant j'ai quelque soucis avec le delimiter, voici le code:
---------------------------
//ma méthode prend un ArrayList<String> en argument nommé dbList
...
Iterator<String> dbListIt= dbList.iterator();
...
do{
Scanner s= new Scanner(dbListIt.next());
String delim = new String("\");
s.useDelimiter(delim);
DefaultMutableTreeNode parent= racineBases;
while(s.hasNext()){
DefaultMutableTreeNode x = new DefaultMutableTreeNode(s.next());
parent.add(x);
parent=x;
}
}while(dbListIt.hasNext());
-----------------------------------
les lignes en gras me posent probleme: en effet, de la façon dont c'est écrit, j'obtient une erreur :
-------------------------------------------
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.Scanner$1.create(Unknown Source)
at java.util.Scanner$1.create(Unknown Source)
at sun.misc.LRUCache.forName(Unknown Source)
at java.util.Scanner.useDelimiter(Unknown Source)
at carlight.mb.test.MaJFrame.makeBasesTreeModel(MaJFrame.java:31)
at carlight.mb.test.MaJFrame.main(MaJFrame.java:65)
-----------------------------------------
Et si j'essai d'autre forme d'écriture ( par exemple, \\\, ou \) Eclipse refuse de compiler.
J'ai fait des recherche sur internet mais rien de trés précis sur un Delimiter backslash, à croire que les chemins d'accès ils ne conaissent pas...
Si vous pouviez m'aider je vous en serait trés reconaissant, et mon stage aussi
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 30 mai 2008 à 16:15
Salut,
T'as vraiment pas de chance, il suffit d'en mettre 4, lol.
Pour java, "\" est une chaîne de caractères contenant un seul caractère : antislash.
Donc quand il compile la regex, il comprend que c'est le caractère d'échappement ""
Hyperpenguin
Messages postés16Date d'inscriptionmercredi 23 avril 2008StatutMembreDernière intervention30 juillet 2009 2 juin 2008 à 09:02
aahhhh bin oui, d'accord....donc et donc en fait le séparateut du chemin d'accès n'est pas "" mais "\" et donc il faut le doubler 2 fois...c'est ça?
Merci de votre aide!