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 :

File.listRoots() : récupérer la lettre ET le nom du lecteur


Sujet :

Java

  1. #1
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut File.listRoots() : récupérer la lettre ET le nom du lecteur
    Bonjour,

    j'utilise la méthode statique "listRoots" de la classe "File" pour récupérer la liste des lecteurs de mon PC. Ayant 2 partitions, un lecteur CD et 4 lecteurs réseaux, je récupère ainsi une liste de 7 objets File.

    Le problème c'est que lorsque je souhaite afficher la liste de ces lecteurs à l'écran, je n'ai pas trouvé de méthode dans la classe File qui permette d'afficher le nom du lecteur.

    La méthode "getPath()" me retourne la lettre ( C: ) alors que je souhaiterais pouvoir afficher "Disque local". L'utilisateur de mon appli ne peut donc pas différencier un disque local d'un lecteur réseau par exemple.

    Y a-t-il un moyen d'obtenir ce résultat ?

    Merci d'avance.
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  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,


    Pour un accès aux spécificités du système, il faut passer par la classe FileSystemView. La méthode FileSystemView() devrait correspondre à tes besoins...

    a++

  3. #3
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    En effet, la méthode getSystemDisplayName() semble retourner la chaine que je souhaite. Le problème, c'est que suis dans le cadre d'une application J2EE, donc importer la librairie Swing seulement pour cela me parait peut-être un peu "lourd", non ?
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  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 danyboy85 Voir le message
    En effet, la méthode getSystemDisplayName() semble retourner la chaine que je souhaite. Le problème, c'est que suis dans le cadre d'une application J2EE, donc importer la librairie Swing seulement pour cela me parait peut-être un peu "lourd", non ?
    Heu... Tu importes une classe là je ne pense pas que ce cela te plombe le serveur


    a++

  5. #5
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Heu... Tu importes une classe là je ne pense pas que ce cela te plombe le serveur


    a++

    Oublie ca, je suis également sur du SwingX en ce moment et j'ai fait l'amalgame entre Swing et SwingX.

    Par contre je n'arrive pas à accéder à la liste des lecteurs avec FileSystemView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileSystemView vueSysteme = FileSystemView.getFileSystemView(); 
    File[] roots = vueSysteme.getRoots();
    Le code précédent me retourne un seul ficher : le Bureau, et ensuite à partir du Bureau, j'ai tenté un listFiles mais qui me retourne la liste des ficheirs du bureau alors que je souhaiterais plutot accéder à mes leteurs C:, D: ...
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  6. #6
    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 danyboy85 Voir le message
    Par contre je n'arrive pas à accéder à la liste des lecteurs avec FileSystemView :
    Je n'ai pas dit qu'il fallait utiliser getRoots()
    Ce dernier permet d'obtenir l'arborescence du système (en commençant par le bureau sous Windows).

    Puisque tu veux simplement les lecteurs File.listRoots() est parfait alors pourquoi en changer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FileSystemView fsv = FileSystemView.getFileSystemView();
     
    		for (File file : File.listRoots()) {
    			System.out.println(file + " : " + fsv.getSystemDisplayName(file));
    		}
    a++

  7. #7
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Effectivement tu as raison mais il m'a fallut lire ton bout de code pour que cela se débloque dans ma tête. Je voyais la classe FileSystemView un peu comme la classe File, une espèce d'arboresence de fichiers. Je viens de comprendre qu'il s'agit d'une classe statique qui fournit des services sur des fichiers.

    Après test, cela fonctionne parfaitement.

    Merci pour ton aide et bonne journée
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

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

Discussions similaires

  1. [AC-2003] Récupérer la Lettre d'un lecteur par son nom de volume
    Par vversaveau dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2010, 12h33
  2. Récupérer un control par son nom
    Par Didier L dans le forum Delphi
    Réponses: 4
    Dernier message: 23/05/2006, 19h59
  3. [VB6] Récupérer chaque lettre d'un String
    Par DJBORIE dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 28/03/2006, 17h28
  4. <input type="file"> comment récupérer unique
    Par priest69 dans le forum ASP
    Réponses: 1
    Dernier message: 06/01/2006, 23h07

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