在 object pascal 中使用 get size 函数的正确方法
the correct way to use get size function in object pascal
我是 DELPHI 的初学者,我有一个问题..
如何调用和使用这个函数,我想在标签中显示结果,以及如何以正确的方式声明函数,在此先感谢。
function FindFileSize(Filename:string):integer;
var
sr : TSearchRec;
begin
if FindFirst(filename,faAnyFile-faDirectory,sr) = 0 then
Result := sr.Size
else
raise EFileNotFoundException.Create(filename+' not found.');
FindClose(sr);
end;
尝试这样的事情:
..., SysUtils;
type
EFileNotFoundException = class(Exception)
end;
function FindFileSize(const Filename: string): Int64;
var
sr : TSearchRec;
Err: Integer;
begin
Err := FindFirst(filename, faAnyFile and (not faDirectory), sr);
if Err = 0 then
begin
FindClose(sr);
if (sr.Attr and faDirectory) = 0 then
begin
Result := sr.Size;
Exit;
end;
Err := ERROR_FILE_NOT_FOUND;
end
if Err = ERROR_FILE_NOT_FOUND then begin
raise EFileNotFoundException.Create(filename + ' not found.');
end else begin
RaiseLastOSError(Err);
end;
end;
procedure TMyForm.Button1Click(Sender: TObject);
begin
Label1.Caption := IntToStr(FindFileSize('C:\path to\some file.ext'));
end;
我是 DELPHI 的初学者,我有一个问题.. 如何调用和使用这个函数,我想在标签中显示结果,以及如何以正确的方式声明函数,在此先感谢。
function FindFileSize(Filename:string):integer;
var
sr : TSearchRec;
begin
if FindFirst(filename,faAnyFile-faDirectory,sr) = 0 then
Result := sr.Size
else
raise EFileNotFoundException.Create(filename+' not found.');
FindClose(sr);
end;
尝试这样的事情:
..., SysUtils;
type
EFileNotFoundException = class(Exception)
end;
function FindFileSize(const Filename: string): Int64;
var
sr : TSearchRec;
Err: Integer;
begin
Err := FindFirst(filename, faAnyFile and (not faDirectory), sr);
if Err = 0 then
begin
FindClose(sr);
if (sr.Attr and faDirectory) = 0 then
begin
Result := sr.Size;
Exit;
end;
Err := ERROR_FILE_NOT_FOUND;
end
if Err = ERROR_FILE_NOT_FOUND then begin
raise EFileNotFoundException.Create(filename + ' not found.');
end else begin
RaiseLastOSError(Err);
end;
end;
procedure TMyForm.Button1Click(Sender: TObject);
begin
Label1.Caption := IntToStr(FindFileSize('C:\path to\some file.ext'));
end;