关于目录及文件的问题?(50分)

  • 主题发起人 主题发起人 sunylat
  • 开始时间 开始时间
S

sunylat

Unregistered / Unconfirmed
GUEST, unregistred user!
您好:
请问如何判断一个目录是否为空?
如何得到指定目录中的文件个数?
谢谢!
 
参考这三个函数: FindFirst, FindNext, FindClose
 
//判断path下是否有文件夹(allowfileview为真时还判断文件)
//path结尾后不要有'/'
function IsNull(Path:string;AllowFileView:boolean):boolean;
var
srec:tsearchrec;
i:integer;
found:boolean;
begin
result:=true;
i:=findfirst(path+'/*.*',faanyfile,srec);
while i=0 do
begin
If (SRec.Attr and faDirectory)<> 0 Then
If (SRec.Name <> '.') and (SRec.Name <> '..') Then
begin
result:=false;
break;
end;
if AllowFileView then begin
If (SRec.Attr and faAnyFile)<>0 Then
begin
result:=false;
break;
end;
end;
i:=findnext(srec);
end;
findclose(srec);
end;

//得到p路径下的文件列表,path结尾后不要有'/'
//Result.count就是文件个数;
function getfile(p:string):Tstringlist;
var
list:tstringlist;
srec:tsearchrec;
i:integer;
begin
list:=tstringlist.Create;
i:=findfirst(p+'/*.*',faanyfile,srec);
while i=0 do
begin
If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then
list.Add(srec.name);
i:=findnext(srec);
end;
findclose(srec);
result:=list;
end;
 
怎样统计在一个文件夹中具有某一特定后缀的文件个数啊?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1010777
 
i:=findfirst(p+'/*.EXE',faanyfile,srec); //这样该就可以了
 
请问如何得到文件个数Result.count的值?
 
List.Count就应该是
 
解决的完整代码:
procedure TForm1.Button10Click(Sender: TObject);
var
sr: TSearchRec;
i:integer;
begin
i:=-1;
if FindFirst('c:/test/*.*',faAnyFile, sr )=0 then
begin
while FindNext(sr) = 0 do
inc(i);
FindClose(sr);
end;
ShowMessage(IntToStr(i) );
end;
 
//得到p路径下的文件列表,path结尾后不要有'/'
//就是文件个数;
//改一下,返回文件个数
function getfile(p:string):integer;
var
list:tstringlist;
srec:tsearchrec;
i:integer;
begin
list:=tstringlist.Create;
i:=findfirst(p+'/*.*',faanyfile,srec);
while i=0 do
begin
If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then
list.Add(srec.name);
i:=findnext(srec);
end;
findclose(srec);
result:=list.count;
end;
 
后退
顶部