Code-Beispiel
Alle Dateien und Unterordner in Verzeichnis löschen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
LGPL | TJF | 01.01.2014 |
Dieser Quelltext dient dazu, Dateien in einem Verzeichnis zu löschen. Es werden alle Dateien gelöscht, sowie alle Unterordnern entfernt (, sofern der Anwender die nötigen Zugriffsrechte besitzt).
Vor dem Aufruf wird in das Basisverzeichnis gewechselt (hier CHDIR("X:\") im Hauptprogramm). Die SUB remove_all() durchsucht dann zunächst alle Unterordner rekursiv und löscht die darin enthaltenen Dateien, bevor die Unterordner selbst gelöscht werden. Abschließend werden die Dateien im Basisverzeichnis gelöscht.
#INCLUDE ONCE "dir.bi"
SUB remove_all()
VAR res = 0, n = DIR("*", fbDirectory, @res), t = ""
WHILE LEN(n)
IF res = fbDirectory ANDALSO n <> "." ANDALSO n <> ".." THEN t &= n & !"\n"
n = DIR("", fbDirectory, @res)
WEND
VAR a = 1, e = a, l = LEN(t)
WHILE a < l
e = INSTR(a, t, !"\n")
n = MID(t, a, e - a)
IF 0 = CHDIR(n) THEN
remove_all()
CHDIR ("..")
RMDIR(n)
END IF
a = e + 1
WEND
n = DIR("*")
WHILE LEN(n)
KILL (n)
n = DIR()
WEND
END SUB
IF 0 = CHDIR("X:\") THEN _' adapt your drive (or directory) here
remove_all()
Der Quelltext entstand in Zusammenarbeit mit Roland Chastain und wurde unter LINUX (Ubuntu) und windows (XP, 8) getestet, sollte aber auch unter jedem weiteren von FreeBasic unterstützten Betriebssystem funktionieren.
Variationen
- Durch Entfernen des Befehls RMDIR(n) bleibt die Verzeichnisstruktur erhalten (Unterordner werden nicht gelöscht).
- Vor der dritten Schleife kann dann eine Dateinamen-Maske spezifiziert werden, um nur bestimmte Dateien zu bearbeiten, z. B. n = DIR("*.bas").
- Der Befehl KILL(n) kann durch jede beliebige Dateioperation ersetzt werden (z. B. Aufruf eines Unterprogrammes, welches die Datei öffnet und durchsucht). Wichtig ist, dass das aktuelle Verzeichnis nicht verändert wird, bzw. abschließend wieder restauriert wird, bevor die Bearbeitung in remove_all() fortgesetzt wird.
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 01.01.2014 von TJF angelegt.
- Die aktuellste Version wurde am 01.01.2014 von TJF gespeichert.
|
|