AW: Mehrere Verzeichnisse kopieren - vorher löschen
30.07.2003 00:20:04
Klaus Schubert
Hallo Erich,
versuch's mal hiermit (in ein normales Modul kopieren):
Sub VerzeichnisseSichern()
Dim fs As Object, intCounter As Integer
Dim Quellverzeichnis As String, Zielverzeichnis As String, Löschverzeichnis As String
Zielverzeichnis = "C:\Sicherung\"
Set fs = CreateObject("Scripting.FileSystemObject")
For intCounter = 1 To 7
Quellverzeichnis = Cells(intCounter, 1).Value
On Error GoTo VerzeichnisVorhanden
fs.CopyFolder Quellverzeichnis, Zielverzeichnis, False
Next intCounter
Exit Sub
VerzeichnisVorhanden:
If Err.Number = 76 Then
MsgBox "Das zu kopierende Verzeichnis " & Chr(34) & Cells(intCounter, 1) & Chr(34) & _
" und/oder das Zielverzeichnis " & Chr(34) & Zielverzeichnis & Chr(34) & " existiert nicht !" _
& vbCr & "(Der Vorgang wird abgebrochen !)", vbCritical
Exit Sub
End If
If Err.Number = 58 Then ' Fehlernummer auswerten 58= Datei existiert schon
Löschverzeichnis = fs.GetBaseName(Quellverzeichnis)
fs.DeleteFolder Zielverzeichnis & Löschverzeichnis, True
End If
Err.Clear
Resume
End Sub
Ich bin mir nur nicht ganz sicher, was du damit meinst, dass Verzeichnisse gelöscht werden sollen, wenn sie schon vorhanden sind. Bei meinem Code wird das alte Verzeichnis zuerst komplett gelöscht, dann aber wieder eine aktuelle Sicherungskopie des Verzeichnis angelegt, oder soll das Verzeichnis nach dem Löschen gar nicht mehr vorhanden sein ???
Man könnte mit der CopyFolder-Methode auch einfach die alten Verzeichnisse überschreiben lassen, allerdings sind dann alte Dateien, welche nicht überschrieben wurden (weil sie in dem aktuellen Verzeichnis vielleicht nicht mehr vorhanden waren und somit die alten Dateien nicht überschreiben konnten !),in der neuen Sicherungskopie weiter vorhanden, was vielleicht nicht erwünscht ist (oder gerade doch !)
Ich hoffe , es war einigermaßen verständlich.
Gruß Klaus