Comment créer un dossier avec des espaces en Java sous Linux ?

Comment créer un dossier avec des espaces en Java sous Linux ? - Java - Programmation

Marsh Posté le 16-02-2013 à 23:22:14    

Bonjour,
 
J'ai un souci grave
 
Je veux exécuter une commande Linux via une classe Java en utilisant l'iterface Runtime, il s'agit d'une commande qui permet de créer un dossier nommé par exemple "mon dossier", avec un espace,
 
Pour la créer en commande Unix c'est simple faut faire soit :  
mkdir mon\ dossier  
ou bien  
mkdir "mon dossier"
 
Mais comment traduire ça en Java, j'ai essayé avec les deux commandes :
runtime.exec("mkdir mon\\ dossier" )
runtime.exec("mkdir \"mon dossier\"" )
 
Voilà un exemple :
 

Code :
  1. import java.io.IOException;
  2. public class CreerDossier {
  3.     public static void main(String[] args) throws IOException {
  4.         Runtime runtime = Runtime.getRuntime();
  5.         runtime.exec("mkdir mon\\ dossier" );
  6.         runtime.exec("mkdir \"mon dossier\"" );
  7.     }
  8. }


 
Mais ça marche toujours pas,
 
Pour runtime.exec("mkdir mon\\ dossier" ) il me crée deux dossier un mon\ et l'autre dossier  
Pour runtime.exec("mkdir \"mon dossier\"" ) il me crée aussi deux dossier un "mon et l'autre dossier"
 
Y a t'il des solutions? en utilisant bien des commandes pareilles?
 
Merci d'avance !
 
Très bien cordialement,

Reply

Marsh Posté le 16-02-2013 à 23:22:14   

Reply

Marsh Posté le 16-02-2013 à 23:39:32    

Ceci ?

Code :
  1. bool res = new File("mon dossier" ).mkdir();
  2. if (res)
  3. {
  4.    System.out.println("OK" );
  5. }
  6. else
  7. {
  8.    System.out.println("NOK" );
  9. }


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-02-2013 à 21:04:42    

Merci pour la réponse,  
 
Mais enfaite mon vrai problème c'est comment appliqué le chmod 777 sur un dossier contenant des espaces par exemple :
 

Code :
  1. chmod 777 mon\ dossier


 
avec :
 

Code :
  1. runtime.exec("chmod 777 mon\\ dossier" );


 
ça marche pas
 
c'est pourquoi j'ai choisi un exemple de mkdir pour arriver à résoudre mon problème
 
merci d'avance!

Reply

Marsh Posté le 18-02-2013 à 11:29:13    

ProcessBuilder te permet de créer un process plus facilement quand il y a des espaces dans les noms

 
Code :
  1. String[] command = new String[3];
  2. command[0] = "chmod";
  3. command[1] = "777";
  4. command[2] = "mon dossier";
  5. ProcessBuilder pb = new ProcessBuilder(command);
  6. Process process = pb.start();
 

Ensuite si tu veux attendre la fin de la commande et/ou tester le code retour il y a la méthode waitFor().


Message édité par Bidem le 18-02-2013 à 11:29:57
Reply

Marsh Posté le 18-02-2013 à 15:20:59    

Merci bidem, c'est ce que j'ai cherché !
 
ça marche parfaitement !

Reply

Marsh Posté le 18-02-2013 à 15:25:36    

et utiliser quelque chose d'adapté, portable, et fait pour ?

 

http://docs.oracle.com/javase/6/do [...] ml#mkdir()


Message édité par kadreg le 18-02-2013 à 15:25:48

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Sujets relatifs:

Leave a Replay

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