Delphi 中擷取檔案大小

來源:互聯網
上載者:User

大概有這些方法可以獲得檔案大小
FileSizeByName(需要引用IdGlobal單元)
GetFileSize
FileSize(不能獲得正在使用的檔案大小)
FileSeek
TFileStream.Size

下面是使用例子
1. FileSizeByName(需要引用IdGlobal單元)
begin
 if OpenDialog1.Execute then
   ShowMessage(IntToStr(FileSizeByName(OpenDialog1.Filename)));
end;

2. GetFileSize
var
  FileHandle:integer;
begin
  if OpenDialog1.Execute then begin
    FileHandle := FileOpen(OpenDialog1.FileName, 0);
    ShowMessage(IntToStr(GetFileSize(FileHandle, nil)));
    FileClose(FileHandle);
  end;
end;

3. FileSize(不能獲得正在使用的檔案大小)
var
  f: file;
begin
  if OpenDialog1.Execute then begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f, 1);
    ShowMessage(IntToStr(FileSize(f)));
    CloseFile(f);
  end;
end;

4. FileSeek
var
  FileHandle:integer;
begin
  if OpenDialog1.Execute then begin
    FileHandle := FileOpen(OpenDialog1.FileName, 0);
    ShowMessage(IntToStr(FileSeek(FileHandle,0,2)));
    FileClose(FileHandle);
  end;
end;

5. TFileStream.Size
var
  FS: TFileStream;
begin
  if OpenDialog1.Execute then begin
    FS := TFileStream.Create(OpenDialog1.FileName, fmShareDenyNone);
    ShowMessage(IntToStr(FS.Size));
    FS.Free;
  end;
end;

另在IdGlobalProtocols中有個FileSizeByName()的函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.