Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

размер длинного файла   Найти похожие ветки 

 
Alex_andr   (2005-11-24 21:00) [0]

Как получить размер файла если его длинна 5-10 Гбайт? Функция FileSize имеет тип LongInt т.е. не более 2147483647 Байт.
Может чего не так понимаю, подскажите пожалуйста.


 
qp   (2005-11-24 21:00) [1]

GetFileSize


 
Anatoly Podgoretsky ©   (2005-11-24 21:20) [2]

А надо ли использовать файлы Паскаля?


 
Alex_andr   (2005-11-24 22:53) [3]

Спасибо, но мне это не помогло.
Я понятия не имею как обращаться с API-функциями в моих книгах они только перечислены и всё. Может кто показать пример или адресок, где это описано.


 
Zeqfreed ©   (2005-11-24 23:18) [4]

Alex_andr   (24.11.05 22:53) [3]
А как обращаться с не API-функциями ты знаешь?


 
Джо ©   (2005-11-24 23:36) [5]


>  [3] Alex_andr   (24.11.05 22:53)

Нужно использовать GetFileSizeEx, именно эта функция позволяет получить 64-битное значение.


 
Джо ©   (2005-11-24 23:41) [6]

Если же эта функция не подходит, а не подходить она может по 2 причинам:
 1. Ей нужно передавать хэндл уже открытого файла, что не всегда желательно и
 2. Она существует, начиная с Win2K.

тогда можно получить желаемое использовав функцию FindFirst. С ее помощью можно получить структуру WIN32_FIND_DATA, которая, в свою очередь, содержит поля с 2-мя двойными словами размера файла. Т.е, сделать что-то вроде:

function MakeInt64 (H,L: DWord): Int64;
begin
 Result := H or L shl 32;
end;

function GetLongFileSize (AFileName: string): Int64;
var
 SR: TSearchRec;
begin
 if FindFirst(AFileName,faAnyFile,SR) = 0 then
 begin
   Result := MakeInt64(SR.FindData.nFileSizeHigh,
     SR.FindData.nFileSizeLow);
   FindClose (SR);
 end
 else
   Result := -1;
end;


 
Alex_andr   (2005-11-25 00:08) [7]

Большое спасибо всё понял!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
14-1132632979
Separator
2005-11-22 07:16
2005.12.11
Закрытые и перенесеные посты


8-1120831896
4ubaka
2005-07-08 18:11
2005.12.11
перевод изобрадений из jpg в bmp


1-1131708902
VEZ
2005-11-11 14:35
2005.12.11
Перехват нашатия клавишь


1-1130999962
kblc
2005-11-03 09:39
2005.12.11
Есть ли у класса интерфейс?


1-1131612611
Некто Аполло
2005-11-10 11:50
2005.12.11
Overload в DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский