| Удаление каталога с подкаталогами | Previous Home Next |
| var |
| iIndex : Integer; |
| SearchRec : TSearchRec; |
| sFileName : String; |
| Result := False; |
| sDir := sDir + '\*.*'; |
| iIndex := FindFirst(sDir, faAnyFile, SearchRec); |
| while iIndex = 0 do |
| begin |
| sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name; |
| if SearchRec.Attr = faDirectory then |
| begin |
| if (SearchRec.Name <> '' ) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then MyRemoveDir(sFileName); |
| end |
| else |
| begin |
| if SearchRec.Attr <> faArchive then FileSetAttr(sFileName, faArchive); |
| if NOT DeleteFile(sFileName) then ShowMessage('Could NOT delete ' + sFileName); |
| end; |
| iIndex := FindNext(SearchRec); |
| end; |
| FindClose(SearchRec); |
| RemoveDir(ExtractFileDir(sDir)); |
| Result := True; |
| ... |
| sh.Wnd := Application.Handle; |
| sh.wFunc := FO_DELETE; |
| sh.pFrom := 'c:\\test\0'; |
| sh.pTo := nil; |
| sh.fFlags := FOF_NOCONFIRMATION or FOF_SILENT; |
| sh.hNameMappings := nil; |
| sh.lpszProgressTitle := nil; |
| |
| SHFileOperation (sh); |
| ... |