一个小问题,分数少!如何知道正在执行的程序本身的大小(10分)

  • 主题发起人 主题发起人 chinausa
  • 开始时间 开始时间
C

chinausa

Unregistered / Unconfirmed
GUEST, unregistred user!
如何知道正在执行的程序文件本身的大小!
不给用windows的api ,用 Filesize();
最好写出源代码!
谢!
 
在delphi帮助中查找关键字Filesize, 或在Filesize下按ctrl+F1, 帮助里有例子.
 
例子我已试过!出现 I/O 错误!
 
var

F: file of Byte;
begin
if OpenDialog1.Execute then begin
AssignFile(F, OpenDialog1.FileName);
{$I-}//关闭io检查
Reset(F);
{$I+}//打开io检查
if IOResult = 0 then
MessageDlg('File size in bytes: ' + IntToStr(FileSize(F)),
mtInformation, [mbOk], 0)
else
MessageDlg('File access error', mtWarning, [mbOk], 0);
end;

end;
 
那试试这个
procedure TForm1.Button1Click(Sender: TObject);
var
f: file of byte;
size : Longint;
source,temp:string;
begin
temp:='temp.tmp'+#0;
source:=paramstr(0)+#0;
copyfile(@source[1],@temp[1],true);
AssignFile(f,temp);
Reset(f);
size := FileSize(f);
CloseFile(f);
deletefile(temp);
label1.Caption:=inttostr(size);
end;
 
//绝对管用!
function GesSelfSize: integer;
var
f: file of byte;
begin
filemode = 0;//读写属性设置为只读,这样才不会出错!
assignfile(f, application.exename);
reset(f);
Result := filesize(f);
closefile(f);
end;
 
如此:
var
s:searchrec;
begin
findfirst(application.exename,s); //好像如此,具体看看findfirst的帮助。。。
可能少个参数,该懂得做吧。
s.size或是s.filesize; //重装机,没DE。
end;

了解没,用FINDFIRST
 
上面几位的代码有没有试过啊?我想出现 I/O 错误是因为程序正在运行,那几位的代码能够
解决这个问题吗?
我懒得试了。 :)
 
接受答案了.
 
后退
顶部