Voilà j'ai un petit soucis avec les appel system sous unix en java :
Voilà le code
Ceci est une boucle qui recursivement liste les dossiers a partir d'une racine "root", ceci marche très bien le problème est que sous linux il y a très souvent des liens symboliques auto-récursif --> ma question est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 File dir=new File(root); File []files=(File[])dir.listFiles(); for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()){ Process p=Runtime.getRuntime().exec("MON APPEL SYSTEME"); if(p.exitValue()==0) explore( files[i].toString()); } else allFiles.add(files[i].toString());
Comment évite-t-on la boucle infinie?
Comment évite-t-on les liens symboliques? ( ln -s)
car si je liste ces dossier c'est pour réaliser des checksums sur des fichiers pour en vérifier l'intégrité après coups.(exercice de sécurité informatique)
j'ai la ligne
qui permet de lancer un appel système
Code : Sélectionner tout - Visualiser dans une fenêtre à part Process p=Runtime.getRuntime().exec(" if ( -l /boot )");
et l'instruction pour récupérer la valeur de retour
suffirait-il que je fasse un scipt bash de le lancer depuis là?
Code : Sélectionner tout - Visualiser dans une fenêtre à part p.exitValue();
Vos suggestions sont les biens venues.
N'oubliez pas que le but finale est non seulement d'éviter les liens symboliques, mais aussi d'éviter les boucles infinies...
Merci d'avance à tous
Partager