|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
GetFileSize - проблема
Пишу прогу для просотра информации графических изображений и мне надо получит размер файла.
Вот код: Код:
procedure TForm1.Button1Click(Sender: TObject); var PicFile : file of Real; pic : Cardinal; picsize : Integer; begin //----------------------------------- AssignFile(PicFile, OpenPictureDialog1.FileName); Reset(PicFile); //---------------------------------- picsize :=GetFileSize(PicFile, NULL); Edit1.Text := FloatToStr(picsize); CloseFile(PicFile); end; А этот гад ругается - incompatible typse: 'Cardinal' and 'Text'; Поочему он счетает PicFile текстовым? - объясните. |
#2
|
||||
|
||||
хе, незнаю. могу посоветовать такую ф-цию
Код:
function FileSize( const Path : String ) : Integer; var FD : TWin32FindData; FH : THandle; begin FH := FindFirstFile( PChar( Path ), FD ); Result := 0; if FH = INVALID_HANDLE_VALUE then exit; Result := FD.nFileSizeLow; if ((FD.nFileSizeLow and $80000000) <> 0) or (FD.nFileSizeHigh <> 0) then Result := -1; FindClose( FH ); end; |
#3
|
||||
|
||||
Бляагодарю. А я нашёл кое-что по-проще:
Код:
function GetFileSize(FileName: String): Integer; begin try FS := TFileStream.Create(Filename, fmOpenRead); except Result := -1; end; if Result <> -1 then Result := FS.Size; FS.Free; end; А применять: просто вызываешь функцию и пишешь IntToStr(GetFileSize('C:\file.txt'));. Усе, но всёравно спаибо. |
#4
|
||||
|
||||
ну эта ф-ция вроде как открывает файл, а FileSize обходится без открытия, что имхо лучше.
|
#5
|
||||
|
||||
Не могу знать. Но читал в справке про GetFileSize и там говорилось, что надо файлу задать значение fmOpenRead или fmOpenWrite. Ну, по крайней мере это работает.
|
#6
|
||||
|
||||
да, но если захочется узнать размер скажем pagefile.sys , то винда фиг даст его открыть и ничё не выйдет возможно. А тот код что я предоставил по идее должен сработать.
|
#7
|
|||
|
|||
А мужики-то не знают
|