DeleteDirectory()
Author: Jare
Added: 10. tammikuuta 2016 kello 2.14
Edited: 10. tammikuuta 2016 kello 2.14
Category: Tiedostot
Description
Poistaa hakemiston ja koko sisällön rekursiivisesti. VAARALLINEN, olethan tarkka, että annat oikean nimen poistettavalle hakemistolle!
Palauttaa:
- true, jos hakemisto saatiin poistettua tai jos hakemisto oli poissa jo alunperin
- false, jos poisto ei onnistu ollenkaan tai vain osa tiedostoista/alikansioista poistettiin
- ja false myös jos olet hölmöillyt ;) - kuten antanut kansion nimen sijasta tiedoston nimen; tai tyhjän merkkijonon. Tyhjä merkkijono viittaa nykyiseen kansioon, ja turvallisuuden vuoksi funktio ei suostu tällöin toimimaan, koska se voi usein olla seurausta väärästä muuttujanimestä kutsulausekkeessa. Jos haluat poistaa nykyisen hakemiston, anna parametriksi joko CurrentDir() tai pelkkä piste "."
Code
Select all1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | Function DeleteDirectory(path$)
If path = "" Then Return False //This might be a mistake
If Not FileExists(path) Then Return True //Already deleted
If Not IsDirectory(path) Then Return False //This is a regular file
old_dir$ = CurrentDir()
recursion$ = ""
ChDir path
StartSearch
Repeat
file_name$ = FindFile()
If file_name = "." Or file_name=".." Or file_name="" Then //A pointer To this directory Or the paren one. Do nothing.
ElseIf IsDirectory(file_name) Then //A directory. Process After EndSearch
If recursion Then recursion + "?"
recursion + file_name
Else //A file. Remove immediately.
DeleteFile file_name
EndIf
Until file_name = ""
EndSearch
//Remove subdirectories using recursion
//This must be done After ending the previous search, As searches can't be stacked in CoolBasic.
For i = 1 To CountWords(recursion, "?")
subdirectory$ = GetWord(recursion, i, "?")
DeleteDirectory(subdirectory)
Next i
ChDir old_dir
DeleteFile path
Return Not FileExists(path)
EndFunction
|
Comments
No comments. You can be first!
Leave a comment
You must be logged in to comment.