Seite 1 von 1

alles in eine Verzeichnis löschen

Verfasst: 20.09.2021 14:07
von marcelx
Hallo,

wie kann ich alle Verzeichnis und Dateien in eine Verzeichnis löschen?
Habe ich in Hilfe nicht gefundet.
Ich könnt der Verzeichnis löschen mit DeleteDirectory mit #PB_FileSystem_Recursive und der Verzeichnis neue erzeugen.

Gruss
MarcelX

Re: alles in eine Verzeichnis löschen

Verfasst: 20.09.2021 16:34
von Axolotl
Hallo,

ja, deine Idee ist okay.
Alternative (wohl nicht wirklich besser) könnte so aussehen.
Ich habe es aber nicht getestet, da ich gerade keine Verzeichnisse zum Löschen verfügbar habe...

Code: Alles auswählen

Procedure ClearDirectory(Directory$) ;' Or PurgeDirectory() Or EmptyDirectory() 
  Protected item$ 

  Directory$ = RTrim(Directory$, #PS$)                            :Debug #LF$+#PB_Compiler_Procedure + "(" + Directory$ + ")" 
  If ExamineDirectory(0, Directory$, "")  ; "" == "*.*" 
    While NextDirectoryEntry(0)
      item$ = DirectoryEntryName(0)  
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
       ;Debug "  DeleteFile(" + Directory$ + #PS$ + item$ + ")" 
        DeleteFile(Directory$ + #PS$ + item$, #PB_FileSystem_Force) 
      Else ; #PB_DirectoryEntry_Directory 
        If item$ = "." Or item$ = ".." : Continue : EndIf 
       ;Debug "  DeleteDirectory(" + Directory$ + #PS$ + item$ + ")" 
        DeleteDirectory(Directory$ + #PS$ + item$, "", #PB_FileSystem_Force | #PB_FileSystem_Recursive) 
      EndIf 
    Wend
    FinishDirectory(0)
  EndIf
EndProcedure 

Re: alles in eine Verzeichnis löschen

Verfasst: 20.09.2021 16:51
von marcelx
Danke Axoloti, das wäre das klassische loop
Wie ich das sehen, gibt es kein Befehle für das Löschen in eine Verzeichnis

Re: alles in eine Verzeichnis löschen

Verfasst: 20.09.2021 17:09
von Axolotl
ja, ich kenne auch nur diese selbstgestrickten Funktionen/Proceduren.

Re: alles in eine Verzeichnis löschen

Verfasst: 10.11.2021 21:54
von marcelx
Hallo,

Wie wäre es mit DeleteDirectory und dann CreateDirectory ?

Re: alles in eine Verzeichnis löschen

Verfasst: 11.11.2021 07:20
von Bisonte
Ein

Code: Alles auswählen

Debug DeleteDirectory(Directory$, "", #PB_FileSystem_Force | #PB_FileSystem_Recursive) 
reicht vollkommen aus. Es löscht das Verzeichnis mit all seinen Files und Unterverzeichnissen und dessen Files usw. .