Получить фактический размер файла в Java? - PullRequest
0 голосов
/ 11 августа 2011

Я застрял в проблеме.

  1. Я начал скачивать файл с торрента. Общий размер Размер файла 699 ​​МБ.
  2. Но через минуту я прекращаю свой торрент-клиент, торрент-клиент показывает 7 МБ данных было загружено, у меня только 1 файл в очереди.
  3. Используя функцию ввода-вывода Java, я вычислил длину файла, и он показал 699 МБ размера

Файл file = новый файл ("D: /Easy.A.2010.BDRip.XviD-iMBT/easy.a.2010.bdrip.xvid-imbt.avi");

System.out.println("File Size="+file.length());

// После преобразования в МБ я получил 699 МБ

на более позднем этапе я разбиваю файл на части одинакового размера и загружаю на сервер. так как размер файла не является фактическим размером файла, я получил исключение

java.lang.NegativeArraySizeException

Пожалуйста, скажите мне, как я могу получить фактический размер файла или получить информацию о файле, который является полным файлом или нет.

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Я не уверен, что это актуально, но все торрент-клиенты, которые я использовал, создают файлы окончательного размера в начале загрузки.

т. Е. Для фильма объемом 699 МБ в самом начале создается пустой файл размером 699 МБ, а загруженные 7 МБ означают, что 7 МБ из этих пробелов были заполнены, но размер файла на диске остается 699 МБ. на протяжении всей загрузки.

1 голос
/ 11 августа 2011

Примите решение. Ваш вопрос о размерах файлов или NegativeArraySizeException? File.length () показывает длину файла в последний раз, когда каталог обновлялся. Если файл все еще открыт и все еще расширяется, эта информация может быть не актуальной.

1 голос
/ 11 августа 2011

Angit верен, торрент-клиент создает пустой файл с размером = torrent_file, и если вы загружаете 7 МБ, он заполняет пустой файл этим, и если вы хотите вычислить первую проверку, чтобы убедиться, что файл, который создает торрент-клиент, заполнен пустым Вы можете посчитать, сколько бланков или не бланков у вас есть, и после этого легко:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...