File.createTempFile(title, ext).getTotalSpace() возвращает неверный результат

#java #java-io

#java #java-ввод-вывод

Вопрос:

Я использую File file = File.createTempFile(title, ext); для создания временного файла, который должен быть удален после завершения обработки метода. Мне также нужно сделать некоторые проверки размера для него после создания, и это не удается, потому file.getTotalSpace(); что возвращает огромное число — «238857973760» — почти 2 терабита. Фактический файл, созданный в папке tmp, составляет 1 КБ. Кроме того, у меня есть только 250 ГБ… так что я не знаю, что с этим значением.

Есть какие-нибудь идеи, почему этот метод выходит из -под контроля?

Ответ №1:

file.getTotalSpace() возвращает размер раздела в байтах. Вы можете использовать file.length()

Ответ №2:

Утверждая другие, вы можете использовать file .length(), если вы хотите получить размер файла.

введите описание изображения здесь

Ответ №3:

Если вы читаете JavaDoc метода getTotalSpace():

Возвращает размер раздела, названного этим абстрактным путем.

Он возвращает размер не вашего файла, а раздела на вашем диске (но может возвращать недопустимое значение, если оно не может его определить, например, на сетевом диске).

Используйте file.length() вместо этого, если вы хотите получить размер файла.

Ответ №4:

Пример : здесь

Метод файла : здесь

используйте метод длины:

 System.out.println("size of file is" file.length());
 

возвращает размер файла в байтах