Java utilisation de la methode getRoots [Résolu/Fermé]

Signaler
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
-
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
-
Bonjour,

s'ill vous plait pouvez vous me donner un exemple comment utiliser la methode public File[] getRoots()
je suis bloqué :(

8 réponses

Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Utilisation de base :

FileSystemView fsv = FileSystemView.getFileSystemView();
for (File f : fsv.getRoots())
    System.out.println(f);
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
le getFileSystemeView() va ne donner quoi comme objet
pour le fsv ?
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Il n'existe qu'un seul objet pour cette classe puisqu'elle dépend du système, c'est pour ça que la méthode getFileSystemView est static.
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
donc elle appartient tjr a FILE ?
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Si je mets des liens c'est pour qu'on clique dessus tu ne crois pas ?
En plus j'ai mis un code d'exemple, où l'on voit bien qu'il s'agit de la classe FileSystemView !
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
bon j'ai bien utilisé cette methose mais c'est ce que je voulez puisque elle me retourne pas seulement les disque disponible alors que moi ce qu'il me faut c'est seulement les lecteurs disponible . en plus je pence pas que l'utilisation des swing est bonne a ce stage puisque je suis qu'un debutant (etudiant ) .
Merci en tout cas
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Ce n'est pas parce qu'une classe appartient au package java.swing que programmer avec cette méthode c'est faire du Java Swing, ici il n'y a pas d'affichage graphique ni rien...
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
bon voila un code mais ce que je veu c'est eliminé test.txt

import java.io.File;

public class Main {
public static void main(String[] args) {
//Création de l'objet File
File f = new File("test.txt");


System.out.println("Affichage des lecteurs à la racine du PC : ");
for(File file : f.listRoots())
{
System.out.println(file.getAbsolutePath());
System.out.println(file.getTotalSpace());
System.out.println(file.getFreeSpace());
System.out.println(file.getUsableSpace());

try {


System.out.println("\n");
}



catch (NullPointerException e) {
}
}
}
}
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
C'est très facile d'éliminer "test.txt", la méthode listRoots est static, donc il est inutile (et faux) de créer un objet pour l'appeler :

for (File root : File.listRoots())

Remarque : il n'y a aucun intérêt à mettre un try catch autour de System.out.println
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
merci beaaaaaaaaaucoup KX . PROBLEME resolu . la derniere chose et tu m'entend pas parler :D c'est seul comment avoir la taiile de la Ram ainssi son espace disponible
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Pour la mémoire vive ça va dépendre beaucoup de ton installation Java, je ne suis pas sûr que cela fonctionne sous Windows, mais tu as getTotalPhysicalMemorySize()

import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;

public class Test
{
    public static void main(String...args) 
    {
        OperatingSystemMXBean bean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        System.out.println(bean.getTotalPhysicalMemorySize());
    }
}
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
ca depend du SE .aussi je pence ?
sous windows sa marche mais je pence c'est la memoire totale je vais testé sous ubuntu
Merci
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Ça ne dépend pas vraiment du système mais plutôt des bibliothèques complémentaires, selon si elles sont accessibles ou non.
En regardant la documentation tu verras qu'il y a aussi getFreePhysicalMemorySpace qui fonctionne de la même manière.
Messages postés
139
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 août 2016
4
Merci j'ai apris beaucoup de vous .