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

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

Votre réponse

2 réponses

Meilleure réponse
Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 16 oct. 2006 à 09:35
3
Merci
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

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Twinuts
inquisitor87
Messages postés
22
Date d'inscription
dimanche 26 septembre 2004
Dernière intervention
22 mars 2007
- 16 oct. 2006 à 17:50
0
Merci
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.