Déterminer si un dossier est un lien symbolique ? [Résolu]

inquisitor87 22 Messages postés dimanche 26 septembre 2004Date d'inscription 22 mars 2007 Dernière intervention - 16 oct. 2006 à 00:25 - Dernière réponse : inquisitor87 22 Messages postés dimanche 26 septembre 2004Date d'inscription 22 mars 2007 Dernière intervention
- 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.
Afficher la suite 

2 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 16 oct. 2006 à 09:35
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
inquisitor87 22 Messages postés dimanche 26 septembre 2004Date d'inscription 22 mars 2007 Dernière intervention - 16 oct. 2006 à 17:50
0
Utile
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 ;)
Commenter la réponse de inquisitor87

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.