Как узнать, сколько места на диске осталось с помощью Java? - PullRequest
57 голосов
/ 27 июня 2009

Как узнать, сколько места на диске осталось с помощью Java?

Ответы [ 6 ]

85 голосов
/ 27 июня 2009

Достаточно взглянуть на файл класса , документация . Это одна из новых функций в 1.6.

Эти новые методы также включают в себя:

  • public long getTotalSpace()
  • public long getFreeSpace()
  • public long getUsableSpace()
<ч />

Если вы все еще используете 1.5, тогда вы можете использовать библиотеку Apache Commons IO и ее класс FileSystem

54 голосов
/ 19 октября 2011

Java 1.7 имеет немного другой API, свободное пространство можно запросить через класс FileStore через getTotalSpace () , getUnallocatedSpace () и getUsableSpace () методов.

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());
    }
}

Преимущество этого API состоит в том, что вы получаете значимые исключения обратно при сбое запроса дискового пространства.

19 голосов
/ 27 июня 2009

Используйте CommonsIO и FilesystemUtils:

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

например.

FileSystemUtils.freeSpaceKb("/"); 

или встроенный в JDK:

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

new File("/").getFreeSpace();
6 голосов
/ 27 июня 2009

Ссылка

Если вы программист на Java, вы можете уже просили это просто, глупый вопрос: «как найти в моей системе осталось свободное место на диске? ». Проблема в том, что ответ системно-зависимый. На самом деле, это реализация, которая является системой зависимый. И до недавнего времени не было единственного решения, чтобы ответить этот вопрос, хотя необходимость был зарегистрирован в базе данных ошибок Sun с июня 1997 года. Теперь можно получить свободное место на диске в Java 6 с метод в классе File, который возвращает количество нераспределенных байтов в разделе, названном абстрактное имя пути. Но вы можете быть заинтересованы в используемом дисковом пространстве (тот, который доступен для записи). Это даже можно получить общее дисковое пространство раздела с методом getTotalSpace ().

3 голосов
/ 02 апреля 2013

При проверке дискового пространства с использованием Java у вас есть следующий метод в java.io Класс файла

  • getTotalSpace ()
  • getFreeSpace ()

, что, безусловно, поможет вам в получении необходимой информации. Например, вы можете обратиться к http://javatutorialhq.com/java/example-source-code/io/file/check-disk-space-java/, который дает конкретный пример использования этих методов.

0 голосов
/ 29 января 2018
public class MemoryStatus{  
 public static void main(String args[])throws Exception{  
  Runtime r=Runtime.getRuntime();  
  System.out.println("Total Memory: "+r.totalMemory());  
  System.out.println("Free Memory: "+r.freeMemory());    
 }
}

Попробуйте этот код, чтобы получить дисковое пространство

...