那个函数能得到.txt文件的大小?谢谢!

piao97 2004-08-30 03:46:14
请教如何得到某txt文件大小,非常感谢!
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly_liuyang 2004-08-31
  • 打赏
  • 举报
回复
不合理的给分!!!
hmily1688 的有我的那么好吗?
没有CloseHandle!无全没理由给10分的!

我的支持任何文件,且大于4G都OK,他的size : Word,只能支持到64K的!
真是岂有此理的!!!
hmily1688 2004-08-30
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
size : Word;
handle : THandle;
begin
handle := FileOpen('hdc.TXT',fmOpenRead);
size := GetFileSize(handle,nil);
ShowMessage(IntToStr(size));
end;
wangjiliang 2004-08-30
  • 打赏
  • 举报
回复
FUNCTION XHGET_FILE_FILESIZE(CONST FILENAME:STRING):INTEGER;//返回文件大小。
VAR
HID:CARDINAL;
TMP:_OFSTRUCT;
BEGIN
RESULT:=0;
TRY
IF FILEEXISTS(FILENAME) THEN
BEGIN
HID:=OPENFILE(PCHAR(FILENAME),TMP,GENERIC_READ);
RESULT:=GETFILESIZE(HID,NIL);
CLOSEHANDLE(HID);
END;
EXCEPT EXIT; END;
END;
ly_liuyang 2004-08-30
  • 打赏
  • 举报
回复
支持任何文件,且大于4G都OK!

function FileGetSize(FileName:string): Int64;
var w32fd: TWin32FindData; h: THandle;
begin
Result := 0;
if FileName='' then Exit;
h := Windows.FindFirstFile(PChar(FileName),w32fd);
if h <> INVALID_HANDLE_VALUE then
with w32fd do Result := nFileSizeHigh * MAXDWORD + nFileSizeLow;
Windows.FindClose(h);
end;

http://lysoft.7u7.net
fei19790920 2004-08-30
  • 打赏
  • 举报
回复
1.
function FSize(FileName: string): LongInt;
var
F: File;
begin
AssignFile(F, FileName);
reset(F,1);
Result := FileSize(F);
CloseFile(F);
end;


2.
function GetFileSize(const FileName: string): LongInt;
var
SearchRec: TSearchRec;
begin
try
if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then
Result := SearchRec.Size
else Result := -1;
finally
SysUtils.FindClose(SearchRec);
end;
end;

gobiz 2004-08-30
  • 打赏
  • 举报
回复
FileSize();
================================================

procedure TForm1.Button1Click(Sender: TObject);

var
f: file of Byte;
size: Longint;
S: string;
y: Integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Reset(f);
try
size := FileSize(f);
S := 'File size in bytes: ' + IntToStr(size);
y := 10;
Canvas.TextOut(5, y, S);
y := y + Canvas.TextHeight(S) + 5;
S := 'Seeking halfway into file...';
Canvas.TextOut(5, y, S);

y := y + Canvas.TextHeight(S) + 5;
Seek(f, size div 2);
S := 'Position is now ' + IntToStr(FilePos(f));
Canvas.TextOut(5, y, S);
finally
CloseFile(f);
end;
end;
end;
gobiz 2004-08-30
  • 打赏
  • 举报
回复
var
vTxt: TextFile;
begin
AssignFile(vTxt, 'test.txt');
ShowMessage(IntToStr(SizeOf(vTxt)));

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧