关于DELPHI删除文件夹,我上网查找过了,似乎没有直接现成的可用函数,于是我收集、整理了两个方法。 方法一: procedure DeleteDir(sDirectory:String); var sr:TSearchRec; sPath,sFile:String; begin //检查目录名后面是否有'/' if Copy(sDirectory,Length(sDirectory),1)<>'/'then sPath:=sDirectory+'/' else sPath:=sDirectory; //------------------------------------------------------------------ if FindFirst(sPath+'*.*',faAnyFile,sr)=0 then begin repeat sFile:=Trim(sr.Name); if sFile='.' then Continue; if sFile='..' then Continue; sFile:=sPath+sr.Name; if(sr.Attr and faDirectory)<>0 then DeleteDir(sFile) else if(sr.Attr and faAnyFile)=sr.Attr then DeleteFile(sFile);//删除文件 until FindNext(sr)<>0; FindClose(sr); end; RemoveDir(sPath); end; 方法二: (需要引用 shellAPI 单元) procedure DeleteDir(fn:string); Var T:TSHFileOpStruct; begin With T do Begin Wnd:=0; wFunc:=FO_DELETE; pFrom:=Pchar(fn); pTo:=nil; //标志表明允许恢复,无须确认并不显示出错信息 fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI; hNameMappings:=nil; lpszProgressTitle:='正在删除文件夹'; fAnyOperationsAborted:=False; End; SHFileOperation(T); end; 方法二删除时会出现一个确认对话框,方法一则直接删除