Process feedback et accents français
Bonjour
Système : Windows 10.
J'ai un petit soucis avec les informations retournées après l'exécution d'une commande Process.
Tous les accents sont supprimés, j'ai essayé avec plusieurs code-pages mais sans succès.
Je veux lire tous les fichiers et répertoires d'un volume sur un NAS sur lequel j'ai les autorisations en lecture (disque Z: ici).
Je voudrais ajouter qu'avec l'explorateur Windows, les accents apparaissent correctement.
Peut-être ma programmation est erronée ? Je sais que l'utilisation d'un vecteur n'est pas la meilleure chose, mais le problème n'est pas là.
Mon exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
import java.io.File;
import java.util.Vector;
import gegeutil.Gegetools;
public class ListeAll_Windows
{
public ListeAll_Windows()
{
ProcessBuilder pb = null;
String cmd = "cmd ";
String path = "Z:\\";
try
{
pb = new ProcessBuilder(cmd,"/c", "tree", "/f", "/a" , path );
Process p= pb.start( ); // p est un process.
Vector<String> v_result = ProcessFeedback.résultat(p);
for (String s : v_result)
{
System.out.println(s);
}
}
catch (Exception ex) {System.out.println(ex.toString()); }
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Vector;
public class ProcessFeedback
{
public static Vector<String> readFeedBack(Process process)
{
Vector<String> v_result = new Vector<String>();
try
{
int i=0;
InputStream inputStream = process.getInputStream();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF_8") ) ;
while ((line = reader.readLine()) != null)
{
v_result.add(i++, line);
}
return v_result;
}
catch (Exception ex){return null;}
}
} |
Merci d'avance
Gérard