Как найти, сколько дискового пространства оставляют с помощью Java?

Написание подробных спецификаций бесполезно.
Писать правильные программы довольно сложно, но компиляторы, отладчики, модульные тесты, тестеры и т. Д. Позволяют обнаруживать и устранять большинство ошибок. С другой стороны, когда вы пишете спецификации со сравнимым уровнем детализации, такие как программа (то есть псевдокод, UML), вы в основном сами по себе. Считайте, что вам повезло, если у вас есть инструмент, который поможет вам правильно понять синтаксис.

Обширные спецификации, скорее всего, изобилуют ошибками.
Вероятность того, что автор понял это с первой попытки, примерно равна вероятности того, что подобная большая программа не содержит ошибок, даже не будучи протестированной. Рецензирование устраняет некоторые ошибки, так же как и рецензирование кода.

59
задан Roman Kagan 8 October 2009 в 06:32
поделиться

3 ответа

Have a look at the File class documentation. This is one of the new features in 1.6.

These new methods also include:

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

If you're still using 1.5 then you can use the Apache Commons IO library and its FileSystem class

86
ответ дан 24 November 2019 в 18:04
поделиться

Используйте 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();
20
ответ дан 24 November 2019 в 18:04
поделиться

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

6
ответ дан 24 November 2019 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: