File.getFreeSpace () Не возвращает правильное значение - PullRequest
4 голосов
/ 08 июня 2011

Я использую file.GetFreeSpace() из класса File Java в своем приложении, чтобы убедиться, что перед передачей файлов достаточно места.Путь является unc-путем, на котором в настоящее время находится ~ 5 ТБ свободного пространства.Однако, когда приведенный выше код выполняется, объем возвращаемого пространства составляет всего 713998336 байт (~ 680 МБ).

Я сопоставил приложение, чтобы использовать другой путь unc, имеющий от 100 МБ до чуть более 1 ГБ свободного места (Я добавлял / удалял файлы для проверки), и приложение сообщало правильный объем свободного места там.Путь unc похож на этот: \\domain6\test\Scratch_Folder\, где Scratch_Folder - это пространство имен DFS с ~ 5 ТБ свободного пространства.Однако при выполнении file.getFreeSpace возвращается свободное место для \\domain6\test\, которое имеет только 670 МБ.Почему это случилось?

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Я нашел проблему!Java возвращала количество свободного места в корне DFS, а не в самой папке DFS (Scratch_Folder показывался как ярлык).Я нашел другой, более прямой путь к папке, в которой не было ярлыка, вместо этого указал приложение и теперь оно работает как положено.

0 голосов
/ 08 июня 2011

Звучит как ошибка в вашей JVM. Эта функция является новой для Java 6, можете ли вы попробовать Java 6 update 25. Когда я запускаю ее для пути UNC с 9 ТБ свободного, я вижу 9 ТБ.

...