Probleme java (listeRoots) aidez moi svp

Résolu
Bonjour,
J'ai fais un programme qui affiche les disque fixes et amovible avec listRoots() mais le probleme c'est que sous windows 7 ca marche parfaitement mais sous ubuntu il m'affiche que le disque fixe ":\ " donc je vous demande s'il y a un methode qui affiche les disque amovible disponible pour resoudre le probleme .

1 réponse

  1. Modérateur
    Le fonctionnement de Linux est différent de celui de Windows.
    Lorsqu'il y a une distinction entre C: D: etc... sur l'un, pour l'autre ce ne sont que des fichiers qui sont dans /media /dev /mnt... c'est à dire que la racine est bien /
    En fait la méthode listRoots permet d'identifier quel est le plus haut niveau de fichier lorsque l'on fait "enregistrer sous", il me semble d'ailleurs que sous Windows ce n'est pas C:\ mais plutôt Bureau (car dans Bureau on a Ordinateur puis C:\ D:\ etc)
    Donc ton erreur n'en est pas vraiment une, ça ne fait pas ce que tu veux mais il n'y a pas de miracle, lorsque l'on touche d'aussi près à des comportements très différents d'un système à l'autre, Java (qui est multiplate-forme) ne sait pas faire... Ce qu'il faut c'est invoquer des méthodes systèmes propre à chaque OS, et les traiter dans chaque cas (regarde la classe Runtime). Tu peux commencer par regarder la commande "ls /media"
    1. mais la condition c'est que il est interdit d'utiliser les commande shell .
    2. Modérateur
      Si c'est juste pour faire un "ls" sans shell, tu peux directement faire un File.listFiles sur "/media", ça revient au même...
    3. mais quand je pose mon tp le prof me dis de l'executer n'importe ou donc y a pas une autre solution par exemple une classe pour les disque amovible ou quelque chose autre
    4. Modérateur
      Si tu la trouves indiques la moi, ça peut toujours servir, moi je ne la connais pas !