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?
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" );
------------------------------Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
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.
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.
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.
------------------------------Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.