Как узнать, сколько дискового пространства осталось с помощью Java?Как узнать, сколько дискового пространства осталось с помощью Java?
ответ
Просто взгляните на класс файла documentation. Это одна из новых функций в версии 1.6.
Эти новые методы также включают в себя:
public long getTotalSpace()
public long getFreeSpace()
public long getUsableSpace()
Если вы все еще используете 1.5, то вы можете использовать Apache Commons IO библиотеку и ее FileSystem class
Если вы программист Java, вы можете уже задавали этот простой, stupide вопрос: «как найти свободного места на диске осталось на моей системе?». Проблема в том, что ответ зависит от системы. На самом деле, это реализация , которая зависит от системы . И до недавнего времени, не было единственным решением, чтобы ответить этот вопрос, хотя потребность была зарегистрирована в базе данных Bug Sun с июня 1997 года Теперь можно получить свободное дисковое пространство в Java 6 с в метод в файле класса, который возвращает количество незанятых байтов в разделе, названном абстрактным именем пути . Но вы можете быть заинтересованным в использовании дискового пространства (тот, который доступен для записи). Даже можно получить общее количество дискового пространства раздела с помощью метода getTotalSpace().
Использование CommonsIO и FilesystemUtils:
например,
FileSystemUtils.freeSpaceKb("/");
или встроенный в JDK:
http://java.sun.com/javase/6/docs/api/java/io/File.html#getFreeSpace()
new File("/").getFreeSpace();
Есть ли какая-либо другая встроенная функция, которая служит цели без необходимости создания нового файла? – user892871
Он не создает новый файл на диске, просто объект File, если это вас беспокоит –
'FileSystemUtils' просто запускает команду« df »(или использует DIR на окнах). довольно ужасно. –
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 в том, что вы получаете значимые исключения, когда запрос на дисковое пространство терпит неудачу.
В Linux Debian вызов FileSystems.getDefault(). GetRootDirectories() возвращает только каталог «/». – pako
при проверке дискового пространства с использованием java у вас есть следующий метод в java.Ио класс File
- 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
Этот код предназначен для памяти, а не для дискового пространства. –
Примечание очень важно, что getUsableSpace не равна getFreeSpace. Например, в файловых системах Linux в разделах очень часто имеется несколько зарезервированных блоков. Они включены в значение, возвращаемое getFreeSpace(), но не в значение из getUsableSpace(). Поэтому, если вам интересно, сколько места вам нужно для записи файлов, используйте getUsableSpace - NOT getFreeSpace(). – Mikkel
«Ты используешь», а не «свое использование», ради Бога. Его системный класс. – biggvsdiccvs