Wie macht man dass???

Code: Alles auswählen
Procedure Backup(Source.s, Dest.s)
Protected Dir.l, entry.s, i.l, max.l
;Wenn das Quellverzeichnis nicht existiert
If FileSize(Source) = -1
Debug "Verzeichnis existiert nicht: '" + Source + "'"
ProcedureReturn #False
EndIf
;Wenn das Zielverzeichnis noch nicht existiert, lege es an
If FileSize(Dest) = -1
i = 1
entry = StringField(Dest, i, "\")
max = CountString(Dest, "\") + 1
While i <= max
Debug entry
If FileSize(entry) = -1
If Not CreateDirectory(entry)
Debug "Kann Verzeichnis nicht erstellen: '" + entry + "'"
ProcedureReturn #False
EndIf
EndIf
i + 1
entry + "\" + StringField(Dest, i, "\")
Wend
EndIf
If Right(Source, 1) <> "\" : Source + "\" : EndIf
If Right(Dest, 1) <> "\" : Dest + "\" : EndIf
Dir = ExamineDirectory(#PB_Any, Source, "")
If Dir
;alle Dateien und Verzeichnisse durchgehen
While NextDirectoryEntry(Dir)
entry = DirectoryEntryName(Dir)
If entry <> ".." And entry <> "."
Select DirectoryEntryType(Dir)
;Wenn es ein Verzeichnis ist
Case #PB_DirectoryEntry_Directory
;Wenn das Verzeichnis im Ziel noch nicht existiert -> anlegen und rekursiv weitermachen
If FileSize(Dest + entry) = -1
If CreateDirectory(Dest + entry)
Backup(Source + entry + "\", Dest + entry + "\")
Else
Debug "Verzeichnis konnte nicht erstellt werden: '" + Dest + entry + "'"
EndIf
;Ansonsten einfach rekursiv weitermachen
Else
Backup(Source + entry + "\", Dest + entry + "\")
EndIf
Case #PB_DirectoryEntry_File
;Wenn die Datei im Ziel noch nicht existiert -> kopieren
If FileSize(Dest + entry) = -1
If Not CopyFile(Source + entry, Dest + entry)
Debug "Datei konnte nicht kopiert werden: '" + Source + entry + "' nach '" + Dest + entry + "'"
EndIf
;Wenn sie schon existiert -> überprüfen, ob das Änderungsdatum neuer ist als das der Datei im Ziel
Else
;Wenn die Datei neuer ist -> alte löschen und neue kopieren
If DirectoryEntryDate(Dir, #PB_Date_Modified) > GetFileDate(Dest + entry, #PB_Date_Modified)
If Not DeleteFile(Dest + entry)
Debug "Datei konnte nicht gelöscht werden: '" + Dest + entry + "'"
Else
If Not CopyFile(Source + entry, Dest + entry)
Debug "Datei konnte nicht kopiert werden: '" + Source + entry + "' nach '" + Dest + entry + "'"
EndIf
EndIf
EndIf
EndIf
EndSelect
EndIf
Wend
FinishDirectory(Dir)
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Backup("C:\Dokumente und Einstellungen\Joel\Eigene Dateien", "C:\Sicherungen\1\Joel")
Code: Alles auswählen
WocheImJahr = DayOfYear(datum) / 7 + 1
WocheImMonat = Day(datum) / 7 + 1