Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1406 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Gestion des espaces ds un path de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion des espaces ds un path de fichier

n°244033
Zeplusoif
Posté le 13-11-2002 à 12:56:56  profilanswer
 

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?
 

mood
Publicité
Posté le 13-11-2002 à 12:56:56  profilanswer
 

n°244124
benou
Posté le 13-11-2002 à 14:21:27  profilanswer
 

avec des guillemets

n°244377
Zeplusoif
Posté le 13-11-2002 à 17:16:37  profilanswer
 

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. }


 
 

n°244385
benou
Posté le 13-11-2002 à 17:23:15  profilanswer
 

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"  

n°244389
darklord
You're welcome
Posté le 13-11-2002 à 17:27:22  profilanswer
 

:lol:


---------------
Just because you feel good does not make you right
n°244430
benou
Posté le 13-11-2002 à 18:00:06  profilanswer
 

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

n°244561
Zeplusoif
Posté le 13-11-2002 à 20:41:55  profilanswer
 

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

n°244936
darklord
You're welcome
Posté le 14-11-2002 à 09:32:31  profilanswer
 

: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
n°245079
Zeplusoif
Posté le 14-11-2002 à 13:17:26  profilanswer
 

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
n°245118
--greg--
Posté le 14-11-2002 à 14:25:15  profilanswer
 

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!
mood
Publicité
Posté le 14-11-2002 à 14:25:15  profilanswer
 

n°245120
darklord
You're welcome
Posté le 14-11-2002 à 14:27:56  profilanswer
 

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
n°245123
darklord
You're welcome
Posté le 14-11-2002 à 14:28:54  profilanswer
 

--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
n°245125
--greg--
Posté le 14-11-2002 à 14:30:41  profilanswer
 

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!
n°245300
Zeplusoif
Posté le 14-11-2002 à 17:04:49  profilanswer
 

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...

n°245307
HappyHarry
Posté le 14-11-2002 à 17:13:35  profilanswer
 

:heink:

n°245317
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-11-2002 à 17:25:30  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Gestion des espaces ds un path de fichier

 

Sujets relatifs
java-nombre de lignes d un fichier texte[PHP] Creation d'un fichier et telechargement de celui-ci
Envoyer un fichier via le reseauupload fichier sur ftp en lan
c'est quoi la syntaxe pour executé un fichier ?[PHP] Gestion de tournois dans des LAN
Gestion de téléchargementsgestion de Grand Nombre
executer du code situer dans un fichier texte c possible???pb: rediriger la sortie standart dans un fichier.
Plus de sujets relatifs à : Gestion des espaces ds un path de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR