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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
#1

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

17.08.2014, 14:15. Просмотров 223. Ответов 5
Метки нет (Все метки)

Добрый день. Пользовался:
C++
1
filelength(fileno(file));
Всё работает, пока файл меньше 4 ГБ, что понятно - возвращает 32-битное значение, если же файл больше, то возвращает максимальное 32-битное число = 4294967295.
Как получить 64-битное значение размера файла?

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

Добавлено через 55 секунд
Думаю нужно использовать виндовс тип UINT64, но как его правильно проинициализировать без изголений?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 14:15     Получить размер больших файлов
Посмотрите здесь:

Как получить размер блока в файловой системе C++
Быстрая сортировка содержимого больших файлов C++
Подсчет количества файлов в папке, размер которых не превышает указанный C++
Размер и поиск файлов _findfirst описание C++
Вычислить размер файлов через консоль C++
C++ Получить размер консольного окна
C++ Размер файлов в каталоге
NTFS, вывести суммарный размер файлов в заданном каталоге C++
C++ Как объединить несколько больших файлов?
C++ Получить размер вектора
Размер файлов и папок. Их атрибуты C++
Ошибка при сохранении больших чисел в тип int (размер встроенных типов) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14638 / 6599 / 1045
Регистрация: 02.05.2013
Сообщений: 10,870
Завершенные тесты: 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
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
17.08.2014, 18:59     Получить размер больших файлов #4
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Не понимаю...конечно, в 32-битных ОС логично было использовать 32 бита, но файлы ведь по определению могут быть больше 4ГБ...
Во времена четырёхгигабайтных дисков как-то не думали о четырёхгигабайтных файлах. А потом, как всегда в таких случаях, проблемы совместимости.
Убежденный
Системный программист
 Аватар для Убежденный
14638 / 6599 / 1045
Регистрация: 02.05.2013
Сообщений: 10,870
Завершенные тесты: 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     Получить размер больших файлов
Ответ Создать тему
Опции темы

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