Votre question

nom de fichier composé

Tags :
  • Runtime
  • Programmation
Dernière réponse : dans Programmation
21 Novembre 2006 17:05:17

Bonjour à tous,

question toute bête mais que je n'arrive pas à résoudre:

dans mon application Java, je lance l'invite de commande pour qu'elle m'ouvre un fichier excel de cette façon:

Runtime.getRuntime().exec("cmd.exe /c start C:\\Docume~1\\Administrateur\\workspace\\Eclipse\\Test1\\Rappor~1\\Rapport.xls");

Jusque là pas de problème.

Maintenant, je voudrais faire de même avec un fichier de nom composé (Rapport num1.xls).
Java considère les espaces comme des délimiteurs entre les chaines de caractères, j'ai donc trouvé cette parade:

Runtime.getRuntime().exec("cmd.exe /c start C:\\Docume~1\\Administrateur\\workspace\\Eclipse\\Test1\\Rappor~1\\Rappor~1.xls");
Ce qui fonctionne très bien.

Mon problème se situe ici: comment faire lorsque dans mon dossier j'ai un fichier "Rapport num1.xls" et un fichier "Rapport num2.xls"? Les deux s'abbrègent par "Rappor~1.xls"...
Y a-til un caractère spécial permettant de ne pas considérer un espace comme un délimiteur?

Merci de votre aide

Autres pages sur : nom fichier composa

21 Novembre 2006 17:10:26

essaye plutôt d'entourer le chemin par des "
  1. Runtime.getRuntime().exec("cmd.exe /c start \"C:\\Docume~1\\Administrateur\\workspace\\Eclipse\\Test1\\Rappor~1\\Rapport num1.xls\"" );


pour ce qui des noms de fichiers windows les nommes par ordre ~1, ~2 ainsi de suite
21 Novembre 2006 17:20:59

non, les 2 ne s'abrège pas de la même façon.
le 2eme devrait s'abréger Rappor~2.xls.

et
1. je pense que les guillements devraient marché, comme indiqué par coca.
2. pour les séparateur de répertoire, utilise System.getProperty("file.separator");
Contenus similaires
21 Novembre 2006 19:59:59

sinon remplace les espaces...-_-
21 Novembre 2006 23:21:16

Super!

Merci beaucoup.

Evidemment je pouvais remplacer les espaces mais je voulais surtout apprendre comment résoudre le problème. Et puis Ca pourrait servir un jour, dans un traitement très automatisé de noms de fichiers.
22 Novembre 2006 10:16:57

super ?
tu veux dire que tu as trouvé ? les "" ça marche ?
22 Novembre 2006 10:39:22

Les ~1, ~2... fonctionnent.

Maintenant les "" ça me fait un truc bizarre: ça m'ouvre une invite de commande où je suis placée dans le répertoire
C:\Documents and Settings\Administrateur\workspace\Eclipse\Test1
et dont le titre (de l'invite de cmd) est
C:\Documents and Settings\Administrateur\workspace\Eclipse\Test1\Rappor~1\Rapport num1.xls

Donc ça fonctionne mais ca ne fait pas ce que je veux.
22 Novembre 2006 10:46:31

cmd /?
donne :
##################
1. Si toutes les conditions suivantes sont respectées, alors les
guillemets de la ligne de commande sont conservés :

- pas d'option /S
- exactement deux caractères guillemet
- aucun caractère spécial entre les deux caractères guillemet, un
caractère spécial étant : &<>()@^|
- il y a un ou plusieurs espaces entre les deux caractères guillemet
- la chaîne comprise entre les deux guillemets est le nom d'un fichier
exécutable.

2. Dans le cas contraire, l'ancien comportement vérifiera si le premier
caractère est un caractère guillemet et si tel est le cas, enlèvera le
premier caractère et le dernier caractère guillemet de la ligne de
commande, préservant tout texte se trouvant après le dernier caractère
guillemet.
##############################
Ce n'est pas un executable, donc ça foiraute.
22 Novembre 2006 11:45:40

Ok, merci pour tes explications.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS