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


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

6 49

6 ответов:

Просто посмотрите на класс файлов документация. Это одна из новых функций в 1.6.

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

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

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

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 заключается в том, что вы получаете значимые исключения обратно, когда запрос дискового пространства завершается неудачей.

Используйте 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();

Ссылка

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

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

  • getTotalSpace ()
  • getFreeSpace ()

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

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

Попробуйте этот код, чтобы получить diskspace