Hallo Leute,
ich habe ein kleines Problem mit meiner Sync Funktion.
Die Funktion vergleicht Dateien und Ordner des "HomePath" mit "DestiPath",
um alle Unterordner mit einzubeziehen, ruft die Funktion sich selbst auf, wenn ein Ordner gefunden wurde. Liegt hier das Problem? Kann DIR() damit nicht umgehen?
Ich erhalte folgende Fehlermeldung:
"Die Dir-Funktion muss zuerst mit einem PathName-Argument aufgerufen werden."
ich habe ein kleines Problem mit meiner Sync Funktion.
Die Funktion vergleicht Dateien und Ordner des "HomePath" mit "DestiPath",
um alle Unterordner mit einzubeziehen, ruft die Funktion sich selbst auf, wenn ein Ordner gefunden wurde. Liegt hier das Problem? Kann DIR() damit nicht umgehen?
Ich erhalte folgende Fehlermeldung:
"Die Dir-Funktion muss zuerst mit einem PathName-Argument aufgerufen werden."
Visual Basic:
Public Function syncAll(ByVal HomePath, ByVal DestiPath)
MyName = Dir(HomePath, vbDirectory)
Do While MyName <> "" ' Start the loop.
If (GetAttr(HomePath & MyName) And vbDirectory) = vbDirectory Then
' If Directory
If System.IO.Directory.Exists(DestiPath & MyName) Then
syncAll(HomePath & MyName & "\", DestiPath & MyName & "\")
Else
' Create if not exists
System.IO.Directory.CreateDirectory(DestiPath & MyName)
syncAll(HomePath & MyName & "\", DestiPath & MyName & "\")
End If
Else
' If File
If System.IO.File.Exists(DestiPath & MyName) Then
' Compare filedates
Dim modInfo = DateTime.Compare(System.IO.File.GetLastWriteTime(HomePath & MyName), System.IO.File.GetLastWriteTime(DestiPath & MyName))
' Copy new file to location
If modInfo > 0 Then
System.IO.File.Delete(DestiPath & MyName)
System.IO.File.Copy(HomePath & MyName, DestiPath & MyName)
Else
System.IO.File.Delete(HomePath & MyName)
System.IO.File.Copy(DestiPath & MyName, HomePath & MyName)
End If
Else
' Copy file if not exists
System.IO.File.Copy(HomePath & MyName, DestiPath & MyName)
End If
End If
MyName = Dir() ' Get next entry.
Loop
End Function