Gestion des espaces ds un path de fichier

Gestion des espaces ds un path de fichier - Java - Programmation

Marsh Posté le 13-11-2002 à 12:56:56    

Bonjour,
 
j'utilise la méthode  
 

Code :
  1. Runtime.exec(start chemin_du_fichier.doc);


 
pour ouvrir un document Word à partir d'une appli Java.
 
Problème : cette instruction ne fonctionne pas lorsque le chemin du fichier (ou le nom du fichier) comporte un espace.
 
Y a-t-il un moyen de gérer les paths avec espace?
 

Reply

Marsh Posté le 13-11-2002 à 12:56:56   

Reply

Marsh Posté le 13-11-2002 à 14:21:27    

avec des guillemets

Reply

Marsh Posté le 13-11-2002 à 17:16:37    

ouaip!
 
Si ça intéresse kkun, g fait une méthode ki transforme un path classique en path avec des guillemetes partout.
 
c:/program files/microsoft/office/un document.doc
 
devient
 
c:/"program files"/"microsoft"/"office"/"un document.doc"
 
La voici:
 

Code :
  1. public String traitementEspaces(String unChemin) {
  2. int unCheminLength= unChemin.length();
  3. //Création d'un tableau de caractère
  4. char[] tempCheminTable = new char [unCheminLength];
  5. unChemin.getChars (0, unCheminLength, tempCheminTable, 0);
  6. //Dénombre le nombre de slashs ds le path
  7. int slashCount=0;
  8. for (int i=0; i<unCheminLength; i++)
  9. {
  10.  if (tempCheminTable[i]=='\\')
  11.   slashCount++;
  12. }
  13. //System.out.println(slashCount);
  14. //on rajoute 2*slashCounts caractères en plus cad 2 guillemets par slashs
  15. char[] cheminTable = new char [tempCheminTable.length+2*slashCount];
  16. //différence entre le compteur tempCheminTable et le compteur cheminTable
  17. int diff=0;
  18. //compteur du nombre de slashs rencontrés
  19. int counter=0;
  20. System.out.println(tempCheminTable.length);
  21. for (int j=0; j<unCheminLength; j++)
  22.  {
  23.  if (tempCheminTable[j]=='\\')
  24.   {
  25.    //si pas encore de slashs rencontrés, on rajoute seulement un guillemet
  26.    //après le slash
  27.    if (counter==0)
  28.     {
  29.      cheminTable[j]='\\';
  30.      cheminTable[j+1]='\"';
  31.      diff=1;
  32.     }
  33.    //sinon on rajoute des guillemets avant et après
  34.    else
  35.     {
  36.      cheminTable[j+diff]='\"';
  37.      cheminTable[j+diff+1]='\\';
  38.      cheminTable[j+diff+2]='\"';
  39.      diff+=2;
  40.     }
  41.    counter++;
  42.   }
  43.  else
  44.   {
  45.    cheminTable [j+diff]= tempCheminTable[j];
  46.   }
  47.  }
  48. //Le dernier caractère est un guillemet
  49. cheminTable[unCheminLength + diff] = '\"';
  50. return new String (cheminTable);
  51. }


 
 

Reply

Marsh Posté le 13-11-2002 à 17:23:15    

ouais ... enfin bon, t'en mettais un au début et un à l afin et ca devait suffir ...
 
"c:\program files\microsoft\office\un document.doc"  

Reply

Marsh Posté le 13-11-2002 à 17:27:22    

:lol:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-11-2002 à 18:00:06    

en tout cas j'ai appris un truc : je savais pas qu'on pouvait mettre des guillements à sur chaque éléments du chemin ;)

Reply

Marsh Posté le 13-11-2002 à 20:41:55    

benou a écrit a écrit :

ouais ... enfin bon, t'en mettais un au début et un à l afin et ca devait suffir ...
 
"c:\program files\microsoft\office\un document.doc"  
 




 
nan marche pas

Reply

Marsh Posté le 14-11-2002 à 09:32:31    

:heink: mais qd arrêterz vous donc à écrire des posts avec une demande et des "ca marche pas"  :(  :(  :(


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 13:17:26    

DarkLord a écrit a écrit :

 :heink: mais qd arrêterz vous donc à écrire des posts avec une demande et des "ca marche pas"  :(  :(  :(  




 
pfff...mais qd arreteras-tu de ronchonner DarkLord :(  :(  
 
ça fait plusieurs fois ke tu interviens ds mes posts seulement pour apporter ta mauvaise humeur et ta suffisance. Merci de t'en abstenir à l'avenir  :jap:  
 
Pour ta gouverne, je précisais juste à benou que la technique "c:\program files\microsoft\office\un document.doc" ne fonctionne pas. Il faut mettre c:\"program files"\microsoft\office\"un document.doc". Je pense ke des personnes rencontrant le même pb ke moi seront content de trouver ce post. Et n'ont pas besoin de la pollution intempestive que tu ajoutes  
 
Alors je t'en prie à nouveau, n'interviens plus jamais dans mes posts    :sleep:


Message édité par Zeplusoif le 14-11-2002 à 13:18:12
Reply

Marsh Posté le 14-11-2002 à 14:25:15    

le seul hic c'est que ça fonctionne le truc de benou :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 14-11-2002 à 14:25:15   

Reply

Marsh Posté le 14-11-2002 à 14:27:56    

Citation :


pfff...mais qd arreteras-tu de ronchonner DarkLord :(  :(  
 
ça fait plusieurs fois ke tu interviens ds mes posts seulement pour apporter ta mauvaise humeur et ta suffisance. Merci de t'en abstenir à l'avenir  :jap:  


 
J'apporte pas ma suffisance comme tu dis. J'empêche des gars dans ton genre de balancer des "je ne sais pas" fade et non constructif. Si tu viens poster sur un forum et que tu demandes de l'aide faut accepter les critiques aussi. Sinon pour ca tu as le service après vente. Eux ils sont payés pour écouter des conneries, pas nous :D
 

Citation :


Pour ta gouverne, je précisais juste à benou que la technique "c:\program files\microsoft\office\un document.doc" ne fonctionne pas. Il faut mettre c:\"program files"\microsoft\office\"un document.doc".  


 
Mais bien sûr. Si tu ouvrais tes yeux une seconde tu saurais que c'est pas ca le problème et que j'ai personnellement testé la technique de benou qui fonctionne très bien. Réfléchis et évite de faire de la désinformation.
 
 

Citation :


Je pense ke des personnes rencontrant le même pb ke moi seront content de trouver ce post. Et n'ont pas besoin de la pollution intempestive que tu ajoutes  


 
Et des personnes rencontrant le meme pb que toi seront probablement ravies de savoir pq soi disant ca ne fonctionne pas. Et ca leur évitera de foutre des guillemets un peu partout. Solution très clean et très portable, cela va sans dire  :sarcastic:  
 

Citation :


Alors je t'en prie à nouveau, n'interviens plus jamais dans mes posts    :sleep:  


 
Aucun problème du moment que tu assumes ce que tu dis. Si tu ne racontes pas n'importe quoi, personne ne te le fera remarquer.
 
A+


Message édité par darklord le 14-11-2002 à 14:37:59

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 14:28:54    

--greg-- a écrit a écrit :

le seul hic c'est que ça fonctionne le truc de benou :o




 
 :jap:  :jap:  :jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 14:30:41    

ha au fait
"c:\\program files\\microsoft\\office\\un document.doc"
 
ça marchera encore mieux :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 14-11-2002 à 17:04:49    

mouais...
 
Essayez  
 

Code :
  1. Runtime.getRuntime().exec("cmd /c start \"C:/mes docs/Mon doc.xls\"" );


 
et
 

Code :
  1. Runtime.getRuntime().exec("cmd /c start C:/\"mes docs\"/\"Mon doc.xls\"" );


 
bah spa pareil chez moi  [:splinter]  
 
Jamais réussi à faire fonctionner cette ligne de commande avec un guillemet au début et un à la fin...

Reply

Marsh Posté le 14-11-2002 à 17:13:35    

:heink:

Reply

Marsh Posté le 14-11-2002 à 17:25:30    

Zeplusoif a écrit a écrit :

 
Jamais réussi à faire fonctionner cette ligne de commande avec un guillemet au début et un à la fin...




 
si tu mets \ au lieu de \\ c'est totalement aléatoire (dépend du compilo et des caractères qui suivent les \)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed