У меня есть требование, при котором мне нужно получить бесплатную квоту диска пользователя (а не свободное место на диске) в системах Linux, использующих Java.Это тот случай, когда пользовательская квота на диск может быть ограничена (например, 2 ГБ), но свободное дисковое пространство довольно велико (например, ТБ).
Проблема в том, что у меня запущено какое-то приложение Java, которое выполняет запись в файловую систему.Прежде чем квота на диск пользователя будет заполнена, я хочу проинформировать пользователя об этом заранее.Я пробовал разные решения, но они не работали.
- Нормальный API-интерфейс Java File getFreeSpace () и getUSableSpace () оба дают мне свободное место на диске, а не свободную дисковую квоту.
- Пробовал с помощью Sigar API, но не смог найти API вСигар, который дает мне это.
- Попытка использования RandomAccessFile.setLength (SOME_THRESHOLD), чтобы проверить, доступно ли пространство SOME_THRESHOLD или нет.Но это также не работает в системе Linux.Он создает разреженный файл, который фактически создается с длиной SOME_THRESHOLD, но он не занимает фактическое пространство (блоки).
- Команда Linux с пробной квотой, и она работает, но я не хочу использовать системные команды.Это может быть проблематично для некоторых разновидностей.
- Один из способов - создать файл размера SOME_THRESHOLD, но делать это после каждых x секунд без необходимости загружать ЦП.
Моё основное требованиеесть какой-либо способ, который может либо дать мне бесплатную пользовательскую квоту на диск, либо позволить мне проверить свободное место, создав файл размера SOME_THRESHOLD, не занимая при этом много ресурсов процессора.
Пожалуйста, помогите.
Спасибо.
Любая помощь здесь, пожалуйста?