ich bin am Ende mit meinem Latein und habe so gut wie alles durchgesehen was es zu dem Thema gibt, aber irgendwie geht mir kein Licht auf. Folgendes Problem:
Ich habe ein kleines VBA geschrieben, dass aus einem Excel Dateipfade ausliest und die OrdNer mit ihren Dateien in ein zip verpackt. Soweit so gut, allerdings möchte ich noch eine cleanup-Routine einbauen, die die ursprünglichen Ordner und Dateien in ein Archiv verschiebt. Das Problem besteht dabei, dass der zu verschiebende Ordner nicht verschoben werden kann und ich immer einen Errorcode 70 zurückbekomme. Folgendes habe ich versucht:
Dim fso As Object
Dim moveDir As String
Dim targetDir As String
Set fso = CreateObject("Scripting.FileSystemObject")
moveDir = "\\x.x.x.x\PathMove"
targetDir = "\\x.x.x.x\PathTarget\"
If fso.folderexists(targetDir) = True Then
fso.getFolder(moveDir & "\").Attributes = 0
'bleibt auf 16 -> directory
fso.getFolder(moveDir & "\").Attributes = 18
'18 -> directory & hidden
'Alternativ: SetAttr moveDir, vbNormal
fso.movefolder Source:=moveDir, Destination:=targetDir
End If
Egal was ich mache, es kommt Zugriff verweigert. Ordner existieren alle, auf den darin gespeicherten Dateien ist kein Schreibschutz und auch copyfolder funktioniert, aber ich bekomme beim besten Willen kein Verschieben zusammen.
Interessant ist dabei noch zu erwähnen, dass das direkte Verschieben ins Zipfile mittels moveTo (Shell.Application) funktioniert, allerdings in der Schleife oftmals an einer beliebigen Stelle hängenbleibt, weil man das Ende einer Verarbeitung nicht genau timen kann und sich das Verschieben in die Quere kommt.
Ich hoffe es war soweit verständlich, es geht eigentlich nur darum den dummen Schreibschutz wegzubekommen. Hat dazu irgendjemand eine Tipp für mich?