Voilà j'ai un petit soucis avec les appel system sous unix en java :

Voilà le code
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());
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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Process p=Runtime.getRuntime().exec(" if ( -l /boot )");
qui permet de lancer un appel système
et l'instruction pour récupérer la valeur de retour

suffirait-il que je fasse un scipt bash de le lancer depuis là?

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