Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Может ли TFileStream работать с файлами > 2 Гб?


Автор: E_v_g 26.7.2008, 05:09
Может ли TFileStream работать с файлами > 2 Гб?

Автор: Rrader 26.7.2008, 08:24
Запросто smile 

До 2^63 - 1 байт

Автор: ZBugz 26.7.2008, 08:49
Цитата(E_v_g @ 26.7.2008,  05:09)
Может ли TFileStream работать с файлами > 2 Гб?

INT64 пользуй с ним и все.  smile 

Автор: E_v_g 26.7.2008, 08:49
Как тогда узнать его размер, ведь TFileStream.Size имеет тип Integer?

Автор: Rrader 26.7.2008, 10:45
Не Integer, а Int64

Автор: E_v_g 26.7.2008, 15:32
В Delphi7 да, а вот в Delphi5 у него тип Longint: signed 32-bit, максимальное значение 2147483647. Переход на Delphi7 в данном конкретном случае нежелателен. Вопрос остается в силе.

Автор: Rrader 26.7.2008, 15:38
Надо было сразу уточнять. Тогда рекомендую сделать свой TFileStream. Модификации будут минимальны (логика построена на API CreateFile-ReadFile-WriteFile), а для размера использовать API GetFileSize(Ex).

Автор: E_v_g 28.7.2008, 11:52
Цитата(Rrader @  26.7.2008,  15:38 Найти цитируемый пост)
сделать свой TFileStream
 - сильно долго. Помощь нашел в DRKB:

Код

if FindFirst(FileName, faAnyFile, ts)=0 then
  Size:=ts.FindData.nFileSizeHigh*4294967296+ts.FindData.nFileSizeLow


Код увеличился всего на две строки  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)