各位大侠,我用此法搜索目录下的文件,但是对ntfs系统无效,求解!
各位大侠,我用此法搜索目录下的文件,但是对ntfs无效,求解!
日复一日,日急生悲.
// 函数,判定是否是目录
Function IsDir(SearchRec:TSearchRec):Boolean;
begin
Result:= (SearchRec.Attr=16) and (SearchRec.Name<>'.') and (SearchRec.Name<>'..');
end;
// 查找文件在目录下
Procedure FindFilesOnDir(sPath:string);
var
SearchRec:TSearchRec;
subdir:TStrings;
i:integer;
begin
subdir:=TStringList.Create;
//最后一个字符是路径分隔符则不变;否则加上一个路径分隔符返回
sPath := IncludeTrailingPathDelimiter(sPath);
//找出所有下级子目录。
if (FindFirst(sPath+'*.*', faDirectory, SearchRec)=0) then
begin
if IsDir(SearchRec) then
subdir.Add(SearchRec.Name);
while FindNext(SearchRec) = 0 do
begin
if IsDir(SearchRec) then
subdir.Add(SearchRec.Name);
end;
end;
FindClose(SearchRec);
//查找当前目录。
FindFirst(sPath + '*.*',faAnyFile - faDirectory,SearchRec);
if(not IsDir(SearchRec))then
// .....
while FindNext(SearchRec)=0 do
// .....
FindClose(SearchRec);
//递归部分,查找各子目录。
for i:=0 to subdir.Count-1 do
FindFilesOnDir(sPath + subdir.Strings[i]+ '\');
subdir.Free;
end;