web-dev-qa-db-fra.com

Comment trouver l'espace disque restant en utilisant Java?

Comment trouver l'espace disque restant en utilisant Java?

58
Roman Kagan

Jetez un œil à la classe File documentation . C'est l'une des nouvelles fonctionnalités de 1.6.

Ces nouvelles méthodes comprennent également:

  • public long getTotalSpace()
  • public long getFreeSpace()
  • public long getUsableSpace()

Si vous utilisez toujours la version 1.5, vous pouvez utiliser la bibliothèque Apache Commons IO et sa classe FileSystem

86
Kredns

Java 1.7 a une API légèrement différente, l'espace libre peut être interrogé via la classe FileStore via getTotalSpace () , getUnallocatedSpace () et - getUsableSpace () méthodes.

NumberFormat nf = NumberFormat.getNumberInstance();
for (Path root : FileSystems.getDefault().getRootDirectories()) {

    System.out.print(root + ": ");
    try {
        FileStore store = Files.getFileStore(root);
        System.out.println("available=" + nf.format(store.getUsableSpace())
                            + ", total=" + nf.format(store.getTotalSpace()));
    } catch (IOException e) {
        System.out.println("error querying space: " + e.toString());
    }
}

L'avantage de cette API est que vous obtenez des exceptions significatives lorsque la requête d'espace disque échoue.

55
prunge

Utilisez CommonsIO et FilesystemUtils:

https://commons.Apache.org/proper/commons-io/javadocs/api-2.5/org/Apache/commons/io/FileSystemUtils.html#freeSpaceKb ()

par exemple.

FileSystemUtils.freeSpaceKb("/"); 

ou intégré au JDK:

http://Java.Sun.com/javase/6/docs/api/Java/io/File.html#getFreeSpace ()

new File("/").getFreeSpace();
19
Jon

Lien

Si vous êtes un programmeur Java, on vous a peut-être déjà posé cette question simple et stupide: "comment trouver l'espace disque libre restant sur mon système?". Le problème est que la réponse est dépend du système. En fait, c'est l'implémentation qui dépend du système. Et jusqu'à très récemment, il n'y avait pas de solution unique pour répondre à cette question, bien que le besoin ait été enregistré dans la base de données des bogues de Sun depuis juin 1997. Il est maintenant possible d'obtenir le espace disque libre dans Java 6 avec une méthode dans la classe File, qui retourne le nombre d'octets non alloués dans la partition nommée par le nom du chemin abstrait. Mais vous pourriez être intéressé par l'espace disque utilisable (celui qui est accessible en écriture). Il est même possible d'obtenir l'espace disque total d'une partition avec la méthode getTotalSpace ().

6
Chris Klepeis

en vérifiant l'espace disque en utilisant Java vous avez la méthode suivante dans la classe Java.io File

  • getTotalSpace ()
  • getFreeSpace ()

ce qui vous aidera certainement à obtenir les informations requises. Par exemple, vous pouvez vous référer à http://javatutorialhq.com/Java/example-source-code/io/file/check-disk-space-Java/ qui donne un exemple concret dans l'utilisation de ces méthodes .

3
user2237049