سلام
من به یک تابعی نیاز دارم که بتواند یک پوشه راحذف کند
متشکرم
Printable View
سلام
من به یک تابعی نیاز دارم که بتواند یک پوشه راحذف کند
متشکرم
از بابک یعقوبی
Procedure CustomDelete(WildCard : String) ;
Var Status : Integer ;
SearchRec : TSearchRec ;
S : String ;
Begin
Status :=
FindFirst(WildCard,faReadOnly+faHidden+faSysFi le+faDirectory+faAnyFile, SearchRec) ;
While Status = 0 Do
Begin
If (SearchRec.Name <> '.') And (SearchRec.Name <> '..') Then
Begin
S := Copy(WildCard, Length(WildCard)-2, 3) ;
Delete(WildCard, Length(WildCard)-2, 3) ;
If SearchRec.Attr = faDirectory Then
Begin
CustomDelete(WildCard+SearchRec.Name+'\'+'*.*' ) ;
RemoveDir(WildCard+SearchRec.Name) ;
WildCard := WildCard + S ;
End
Else
If SearchRec.Attr <> faDirectory Then
Begin
If Not DeleteFile(WildCard+SearchRec.Name) Then
MessageDlg(['اشکال در حذف فایل'],mtError, [bkOk]) ;
DeleteFile(WildCard+SearchRec.Name) ;
WildCard := WildCard + S ;
End ;
End ;
Status := FindNext(SearchRec) ;
End ;
End ;
بعوان مثال با این صورت صدا بزنید :
CustomDelete('C:\TEMP\*.*')
بابک یعقوبی
برای انجام این کار این همه زحمت لازم نیست میتوانی از تابع rmdir برای حذف پوشه و از تابع erase برای حذف فایل استفاده کنی
اگه بین کلمات فولدر فاصله خورده باشه اون را حذف نمی کنه
مثلا New Folder را حذف نمی کنه ولی NewFolder را حذف می کنه
چرا