Форум программистов, компьютерный форум CyberForum.ru

Получить размер больших файлов - C++

Восстановить пароль Регистрация
 
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
17.08.2014, 14:15     Получить размер больших файлов #1
Добрый день. Пользовался:
C++
1
filelength(fileno(file));
Всё работает, пока файл меньше 4 ГБ, что понятно - возвращает 32-битное значение, если же файл больше, то возвращает максимальное 32-битное число = 4294967295.
Как получить 64-битное значение размера файла?

Добавлено через 51 секунду
ОСЬ 32-х битная...

Добавлено через 55 секунд
Думаю нужно использовать виндовс тип UINT64, но как его правильно проинициализировать без изголений?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14193 / 6208 / 985
Регистрация: 02.05.2013
Сообщений: 10,343
Завершенные тесты: 1
17.08.2014, 16:21     Получить размер больших файлов #2
GetFileSizeEx подойдет ?
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
17.08.2014, 18:47  [ТС]     Получить размер больших файлов #3
Цитата Сообщение от Убежденный Посмотреть сообщение
GetFileSizeEx подойдет ?
Спасибо!
А есть 64-битные аналоги
C++
1
2
ftell();
fseek();
?

Не по теме:

Не понимаю...конечно, в 32-битных ОС логично было использовать 32 бита, но файлы ведь по определению могут быть больше 4ГБ...

Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
17.08.2014, 18:59     Получить размер больших файлов #4
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Не понимаю...конечно, в 32-битных ОС логично было использовать 32 бита, но файлы ведь по определению могут быть больше 4ГБ...
Во времена четырёхгигабайтных дисков как-то не думали о четырёхгигабайтных файлах. А потом, как всегда в таких случаях, проблемы совместимости.
Убежденный
Системный программист
 Аватар для Убежденный
14193 / 6208 / 985
Регистрация: 02.05.2013
Сообщений: 10,343
Завершенные тесты: 1
17.08.2014, 19:13     Получить размер больших файлов #5
В Visual C++ уже много лет есть _fseeki64, например.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
17.08.2014, 19:16  [ТС]     Получить размер больших файлов #6
Цитата Сообщение от Somebody Посмотреть сообщение
А потом, как всегда в таких случаях, проблемы совместимости.
И то так...

Нашёл
C++
1
2
_fseeki64(file,0,SEEK_SET);
_ftelli64(file);
Тема закрыта. Всем откликнувшимся спасибо.

Добавлено через 31 секунду
Цитата Сообщение от Убежденный Посмотреть сообщение
В Visual C++ уже много лет есть _fseeki64, например.
Спасибо, написал раньше чем прочитал)
Yandex
Объявления
17.08.2014, 19:16     Получить размер больших файлов
Ответ Создать тему
Опции темы

Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru