IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java et les liens symboliques Vista


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Java et les liens symboliques Vista
    Bonjour à tous,
    J'aurais besoin (sous vista) de convertir des chemins incluant des jonctions [edit: jonctions = ~liens symboliques] en chemins "système" vers des fichiers à l'aide Java (ou à l'aide de JNI si c'est pas possible autrement). Par exemple, j'aimerais transformer C:\Utilisateurs\toto\Downloads\mondocument.doc en C:\Users\toto\Downloads\mondocument.doc.

    L'idée bête et méchante serait de pouvoir configurer mon application avec une table de mappage contenant les chemins avec jonctions et les chemins sans jonctions. Mais c'est pas très joli et pratique à maintenir ce genre de choses.

    Pour information, en Java, une telle instruction renvoie "false":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File("C:\\Utilisateurs").exists();
    Des idées ?
    Merci d'avance

    Goulutor

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    C'est quoi une "jonction" exactement ?

    Sinon tu dis que le répertoire C:\\Utilisateurs est visible depuis l'explorateur de fichier, mais inaccessible depuis un programme ???



    A tout hasard tu utilises bien une JVM mise à jour pour Vista ?

    a++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Enfin quand je dis jonctions, c'est plutôt des liens symboliques.

    Sinon comme version de java j'utilise JRE et JDK 6 Update 16.

    Si quelqu'un obtient "true" avec l'instruction sus-mentionnée, je veux bien savoir comment il a fait (à part créer un dossier "Utilisateurs" à la racine )

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Goulutor Voir le message
    Enfin quand je dis jonctions, c'est plutôt des liens symboliques.
    Ah ! Il existe donc des liens symboliques dans Windows Vista ! J'ignorais cela !

    Citation Envoyé par Goulutor Voir le message
    Si quelqu'un obtient "true" avec l'instruction sus-mentionnée, je veux bien savoir comment il a fait (à part créer un dossier "Utilisateurs" à la racine )
    Théoriquement s'il s'agit d'un lien symbolique cela devrait être totalement transparent pour le programme...


    Par curiosité, qu'obtient du lorsque du fait un dir sur le disque C:\ dans une console DOS ???

    J'ai peur que ce répertoire "utilisateurs" n'existe pas du tout, et soit seulement "simuler" par l'explorateur...


    a++

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut


    Bon. Je commence à comprendre un peu plus comment ce #@$?! de Vista gère ces dossiers. Il y a bien des jonctions qui sont utilisées pour la rétrocompatibilité (exemples, "C:\Document and Settings" -> "C:\Users") et d'après ce que j'ai lu, les "liens" "Téléchargement", "Utilisateurs" sont définis dans les fichiers desktop.ini correspondant. Exemple du desktop.ini du dossier "C:\Programmes":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [.ShellClassInfo]
    LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21781
    Du coup il faut que j'attrappe le problème dans l'autre sens. En fait je devrais jamais avoir affaire à ce genre de chemin dans un monde idéal.

    Mais malheureusement, je bosse sur un projet qui utiliste Windows Desktop Search. Ce dernier me renvoie une liste de fichiers d'après les critères désirés mais uniquement avec des chemins du style "C:\Utilisateurs\Téléchargement", "C:\Utilisateurs\Musique" !!! Et j'ai besoin d'avoir les "vrais" chemins pour faire un mapping entre les résultats de WDS et une arborescence de mon disque avec un JTree en Java.

    Solution bête et méchante : avoir un fichier de configuration (un par langue!) pour convertir les chemins. Question portabilité c'est pas terrible.

    Deuxième solution, configurer WDS pour qu'il me donne directement les bons chemins (ou bien juste un truc à ajouter à ma requête). Mais là je vois pas.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Rah... c'est toujours comme ça, on pose la question et on trouve la réponse tout seul.

    Pour information, j'utilise une interface "home made" entre Java et WDS qui me permet de formuler des requêtes WDS SQL du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT System.ItemName, System.ItemPathDisplay, System.DateCreated FROM SYSTEMINDEX
    Le problème c'était que cette requête me renvoyait des résultats pas complètement exploitables.

    Mais j'ai trouvé l'attribut System.ItemUrl qui renvoie des urls du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file://C:/Users/toto/Document/mondocument.doc
    Et du coup fini les problèmes de "localized folders". Il me suffira d'enlever "file://" et de mettre des "\" à la place des "/" et c'est tout bon.

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Goulutor Voir le message
    et d'après ce que j'ai lu, les "liens" "Téléchargement", "Utilisateurs" sont définis dans les fichiers desktop.ini correspondant.
    Youpi ! Comment faire compliqué quand on peut faire simple



    Tu peux peut-être essayé de passer par le FileSystemView... mais je ne garantie rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	FileSystemView fsView = FileSystemView.getFileSystemView();
    	File dir = fsView.createFileObject("C:\\Utilisateurs");
     
    	System.out.println(dir + " : " + dir.exists());
    a++

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Nos posts se sont croisés...

    Citation Envoyé par Goulutor Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file://C:/Users/toto/Document/mondocument.doc
    Et du coup fini les problèmes de "localized folders". Il me suffira d'enlever "file://" et de mettre des "\" à la place des "/" et c'est tout bon.
    Pas besoin de t'embêter avec les "\" et les "/"... c'est gérer tout seul !

    a++

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Tu peux peut-être essayé de passer par le FileSystemView... mais je ne garantie rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	FileSystemView fsView = FileSystemView.getFileSystemView();
    	File dir = fsView.createFileObject("C:\\Utilisateurs");
     
    	System.out.println(dir + " : " + dir.exists());
    Juste pour info ça renvoie également false.

    ++Merci

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    J'apprends qu'il y a des liens symboliques sur Vista !!! Manque encore un shell digne de ce nom

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Autoriser les liens symboliques qu'à la racine
    Par Maisondouf dans le forum Apache
    Réponses: 5
    Dernier message: 06/02/2013, 00h24
  2. les liens symboliques et durs !
    Par blood.death dans le forum Administration système
    Réponses: 2
    Dernier message: 02/06/2009, 09h49
  3. [rsync - débutant] Erreur avec les liens symbolique
    Par pierrot10 dans le forum Administration système
    Réponses: 1
    Dernier message: 15/02/2009, 18h13
  4. Trouver les liens symboliques
    Par vbcasimir dans le forum Linux
    Réponses: 6
    Dernier message: 31/07/2006, 14h02
  5. Problème de lien symbolique pour le plugin java avec firefox
    Par HNT dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 18/03/2006, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo