回复pp-yy-xx:
代码如上.
以上代码实现对一个目录,可以删除其中的所有子目录和文件及空目录.使用第归.
对于特殊文件(只读,系统,隐藏)则先用
FileSetAttr函数修改属性.
//注解如下:
function Tform1.Deltree(path:string):boolean;
var
searchRec:TSearchRec;
OldDir:string;
begin
if DirectoryExists(Path) then //判断Path目录是否存在
begin
OldDir:=GetCurrentDir;
ChDir(Path);
//查找目录中所有文件
FindFirst('*.*',faAnyfile,SearchRec);
repeat
//修改文件属性
FileSetAttr(SearchRec.Name,0);
//如果是目录,则第归调用DelTree
if (SearChRec.Attr and faDirectory>0) then
begin
if (SearcRec.Name[1]<>'.') or (SearcRec.Name[1]<>'..') then
if (not DelTree(SearchRec.Name) then
break;
end
//如果是文件则直接删除
else if (not deleteFile(SearchRec.name)) then
break;
until (FindNext(SearchREC)<>0);
chdir('..');//回到父目录,删除该目录.
result:=RemoveDir(Olddir)
end
else
result:=false;
end;