Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать размер файла? [D7]


Страницы:   1 2

Кот ©   (2005-07-26 07:23:00) 

Есть видео файл, к которому известен путь, как узнать его размер? Заранее спасибо.


Mamed   (2005-07-26 09:53:00) [21]

Returns the size of a file in bytes or the number of records in a record file.

Unit

System

Category

I/O routines

function FileSize(var F): Integer;

Description

Call FileSize to determine the size of the file specified by the file variable F. To use FileSize, the file must be open. If the file is empty, FileSize(F) returns 0.

Note: FileSize can't be used on a text file.


ANB   (2005-07-26 09:51:00) [22]

Все примеры, кроме [1] не будут отрабатывать на очень длинных файлах, так как возвращают только 4 байта. Имхо.


Antonn   (2005-07-26 09:44:00) [23]

function GetFileSize(FileName: String): Integer;
var
 FS: TFileStream;
begin
 try
   FS := TFileStream.Create(Filename, fmOpenRead);
 except
   Result := -1;
 end;
 if Result <> -1 then Result := FS.Size;
 FS.Free;
end;


Mamed   (2005-07-26 09:43:00) [24]

3 goda kusok rabotayusego koda:

 Fsize:=FileSize(f); dayet v baytax

var R:TStockFileFormat;F:TStockFile;
  Unitlinerefs:Arrayofstring;
  UnitSetref:Integer;
  result_,i:Integer;
  Opcode:TEpuDataOperations;
  RFinded: Boolean;
  Fsize:Integer;
  Fr:TStockImportResultFile;
  r1:TStockImportResultFormat;
  LFilename_:String;
  SqlStok:String;
Begin
 SqlStok:='SELECT LOGICALREF,ACTIVE,CARDTYPE,CODE,NAME,STGRPCODE,PRODUCERCODE,SPECODE,CYPHCODE,CLASSTYPE,PURCHBRWS,SALESBRWS,MTRLBRWS,VAT, ';
CAPIBLOCK_CREATEDHOUR,CAPIBLOCK_CREATEDMIN,CAPIBLOCK_CREATEDSEC,';
 SqlStok:=SqlStok+' QPRODSRCINDEX,EXTACCESSFLAGS,PACKET,SALVAGEVAL2,SELLVAT,RETURNVAT FROM LG_'+Glb_CompanyCode+'_ITEMS ';
 AssignFile(f,Filename_);
 LFilename_:=ExtractFileName(Filename_);
 LFilename_:=EpuTemplateFolder+'\'+Copy(LFilename_,1,length(LFilename_)-length(stockitmext)-1)+'.'+stocklogext;
 AssignFile(fr,LFilename_);
 Rewrite(fr);
 Reset(f);
 Try
   If Frm_stockimport<> Nil Then
     Frm_stockimport.StPro.Min:=0;
 except
 end;
 Fsize:=FileSize(f);
 Try
   If Frm_stockimport<> Nil Then
   Begin
     Frm_stockimport.StPro.Max:=Fsize;
     Frm_stockimport.StPro.Position:=0;
   End;
 except
 End;


Dust   (2005-07-26 09:42:00) [25]

единственное условие - доступность файла для чтения...
а потому в 90% случаев этот пример будет работать, хотя согласен,
твой вариант не будет работать только если нет прав доступа  папки на чтение


Anatoly Podgoretsky   (2005-07-26 09:37:00) [26]

Dust ©   (26.07.05 09:30) [6]
Только при определенных условиях, а правильный ответ, который работает во всех условиях указан в [1]


Anatoly Podgoretsky   (2005-07-26 09:31:00) [27]

Mamed   (26.07.05 09:28) [4]
А вот не надо вешать лапшу на уши. Здесь не только указаные ошибки, но еще и неверный результат. Но не получится и с включением указаных операторов.


Dust   (2005-07-26 09:30:00) [28]

вот этот пример работатет точно


Dust   (2005-07-26 09:29:00) [29]

procedure TForm1.Button1Click(Sender: TObject);
var
 hFile, size_ , I, N : dword;
 begin
     hFile:=CreateFile(PChar(Edit1.Text), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
     if (hFile INVALID_HANDLE_VALUE) then  begin
         size_:=GetFileSize(hFile, nil);
         MessageBox (0,Pchar(IntToStr (size_) + ' áàéò'), 'App Name ', MB_OK);
         CloseHandle(hFile);
         end;
 end;


Mamed   (2005-07-26 09:28:00) [30]

esli bi ne probival to ne napisal bi.zdes ... zabil
tam esho i nujen AssiginFile CloseFile


Anatoly Podgoretsky   (2005-07-26 09:15:00) [31]

Mamed   (26.07.05 08:22) [2]
Сам то проверял эту ересь?


Mamed   (2005-07-26 08:22:00) [32]

Var f:File;
begin
 v_size:=FileSize(f);
end;


Fay   (2005-07-26 07:41:00) [33]

2 Кот   (26.07.05 7:23)
FindFirstFile + FindClose + F1


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо