Déterminer si un dossier est un lien symbolique ?

Résolu
inquisitor87 Messages postés 22 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 22 mars 2007 - 16 oct. 2006 à 00:25
inquisitor87 Messages postés 22 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 22 mars 2007 - 16 oct. 2006 à 17:50
Bonjour à tous et à toutes,

Ayant remarqué qu'il y avait énormément de demandes concernant la navigation dans les disque durs et entre les fichiers, je me suis mis en tête de créer pour le déposer en source ici une librairie d'explorateur de fichier complet et GPL. Mais je bute sur un ptit truc tout bête mais qui me gène grandement : je n'arrive pas à déterminer si un dossier est un lien symbolique ou pas. Ce qui me fusille mon algo recursif de calcul de taille de dossiers.

Sauriez-vous comment je pourrais déterminer si un dossier est un lien symbolique ou non ?

Merci d'avance.

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 oct. 2006 à 09:35
Salut,

avant de traiter ton cas je voudrais juste te conseiller de passer en LGPL et non en GPL ce qui risque fort d'attirer plus de gens en effet la GPL est une license virale soit tous projets integrant le tiens deviens lui aussi GPL contrairement à la LGPL...

Sinon concernant ta question voici un exemple (seule la methode isSymLink est utile):

public class Test{
   
    public static void main(String [] args){
        File parent = new File("/home/twins");
        String link1 = "src";//lien de type repertoire
        String link2 = "run";//lien de type fichier
        String notLink = "dev";//repertoire normale
        try {
            System.out.println(isSymLink(parent, link1));//affiche true
            System.out.println(isSymLink(parent, link2));//affiche true
            System.out.println(isSymLink(parent, notLink));//affiche false
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
   
    public static boolean isSymLink(File parent, String name) throws IOException {
        if (parent == null) {
            File f = new File(name);
            parent = f.getParentFile();
            name = f.getName();
        }
        File test = new File(parent.getCanonicalPath(), name);
        return !test.getAbsolutePath().equals(test.getCanonicalPath());
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
inquisitor87 Messages postés 22 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 22 mars 2007
16 oct. 2006 à 17:50
Merci de ton aide, cela marche parfaitement. Plus que quelques petites choses et tout sera prêt.
Et enfin merci pour l'astuce de la LGPL, j'y avais pas pensé. Je vais regarder ça de plus prêt. Thanks ;)
0
Rejoignez-nous