Ordner löschen

hallo,
weiß jemand zufällig wie ich
ordner incl. unterordner und incl. inhalte lösche???

  • bzw. auch, wie man den gesamten inhalt einer 2. festplatte löscht???

gut wäre, ohne löschbestätigung und ohne dass man sieht, dass was gelöscht wird, der ganze löschvorgang sollte also im hintergrund und möglichst schnell erfolgen.

lieben dank
udo

weiß jemand zufällig wie ich
ordner incl. unterordner und incl. inhalte lösche???

  • bzw. auch, wie man den gesamten inhalt einer 2. festplatte
    löscht???
    gut wäre, ohne löschbestätigung und ohne dass man sieht, dass
    was gelöscht wird, der ganze löschvorgang sollte also im
    hintergrund und möglichst schnell erfolgen.

Hi Udo,

lies mal die hiesige Brettbeschreibung und plauder mal welche Vb-Version du hast.

Gruß
Reinhard

Hi Udo,

weiß jemand zufällig wie ich
ordner incl. unterordner und incl. inhalte lösche???

  • bzw. auch, wie man den gesamten inhalt einer 2. festplatte
    löscht???

gut wäre, ohne löschbestätigung und ohne dass man sieht, dass
was gelöscht wird, der ganze löschvorgang sollte also im
hintergrund und möglichst schnell erfolgen.

so viel ich weiß, geht das in VB mit einem Befehl nicht.

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.

Variante2: Erzeuge eine Batchdatei. Übergib das zu löschende Verzeichnis an eine Variable, z.B. ‚Pfad‘ und schreibe in die Batchatei ‚rmdir /s /q Pfad‘

Die Batchdatei musst Du dann nur mit Shell „DeinPfad/Deine Batchdate“
ausführen und das Verzeichnis ist weg, der Inhalt auch, ohne weiter Fragen.

Beispiel:

ff = FreeFile
Open "C:\Kill.bat" For Output As #ff
 Print #ff, "rmdir /s /q " & Pfad
Close #ff

Shell "C:\Kill.bat"

Gruß Rainer

Tippfehler im Code beseitigt.

… und plauder mal welche Vb-Version du hast.
sorry vb6

Hallo Reinhard,

lies mal die hiesige Brettbeschreibung und plauder mal welche
Vb-Version du hast.

im Prinzip hast du Recht, aber außer mit VBS und Office97 oder älter sollte der Code oben laufen.

Gruß Rainer

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

1 Like

Hallo Reinhard,

die Tipps bei AVB habe ich durchsucht, das Tutorial habe ich nicht gesehe. Klar, WSH. Daran habe ich nicht gedacht.

Danke!

Gruß, Rainer

danke
hallo,
danke, werd was zusammenbasteln…