Hallo Udo, Rainer,
weiß jemand zufällig wie ich
ordner incl. unterordner und incl. inhalte lösche???
schau mal hier:
http://www.activevb.de/rubriken/faq/faq0002.html
Variante1: Eine Prozedur dazu schreiben, die die Verzeichnisse
rekursiv durchsucht, mit Kill die Dateien löscht und mit RmDir
danach die Verzeichnisse. Das ist aber unter Umständen recht
langsam, wenn es viele Verzeichnisse sind.
das „deleteFolder“ vom FSO löscht doch auch Unterverzeichnisse wenn sie nicht leer sind?
In Vba gibt es „deleteFolder“ auch unabhängig von FSO, naja, nützt jetzt für VB nix *gg*
Im Inet fand ich folgenden Code, der lief in Excel2000-Vba und der löscht auch Unterverzeichnisse von Unterverzeichnissen.
Gelegentlich, obwohl korrekt gelöscht wurde kommt Fehler 70,75,76. Wovon die Nummer abhängt ist noch unklar, hängt irgendwie daran ob es in den Verzeichnissen Dateien gab o.ä.
Sub Test()
Dim fso As Object
Dim sFolder As String
On Local Error GoTo ErrH
Set fso = CreateObject("Scripting.FileSystemObject")
sFolder = "C:\Test\test"
fso.DeleteFolder sFolder, True
Exit Sub
ErrH:
MsgBox "Error " & Err.Number, vbCritical
End Sub
Aber solange da korrekt gelöscht wird sehe ich noch keinen Handlungsbedarf durch ausgiebige Tests zu klären wann es da zu einem Fehler kommt und warum die Fehlernummer wechselt.
Weit interessanter finde ich das „Local“ in
On Local Error GoTo ErrH
Ich sah noch nie Vba-Code mit „Local“. Wird auch in der Hilfe zu „On“ nicht erwähnt.
Da werde ich viel eher mal testen wie brauchbar das ist.
Gruß
Reinhard