Unzip einer übergebenen Datei
12.11.2018 19:57:14
Traptor8180
ich habe eine
Sub geschrieben, die einen Mail Anhang abspeichert. Wenn es sich nicht um eine ZIP Datei _
handelt, wird direkt abgespeichert:
' Diese Methode speichert das Attachment der übergebenen E-Mail
Sub saveAttachtoDisk(itm As Object, filename As String, path As String)
Dim objAtt As Object
'wenn das letzte Zeichen kein \ ist, dann hänge ein \ hinten dran
If Right(path, 1) "\" Then
path = path + "\"
End If
For Each objAtt In itm.attachments
' Wenn es ein ZIP-File ist, dann Unzip in einen Tmp-Ordner
If Right(objAtt, 4) = ".zip" Then
' Call unzipMailAttachment(objAtt, filename, path)
Call unzipMailAttachment(objAtt, filename, path)
' Move File wird in der Unzip-Methode gemacht
Else ' Wenn Attachment kein ZIP ist, unzip erst
Call archiveOldFiles(path, filename)
objAtt.SaveAsFile path & filename
End If
Set objAtt = Nothing
Next
End Sub
Wenn es sich um eine ZIP-Datei handelt, wird zusätzlich die folgende Prozedur aufgerufen, die _
_
die übergebene Datei entpacken soll. Und genau hier liegt mein Problem. Folgende Prozedur _
funktioniert leider nicht
' Diese Methode speichert das Attachment der übergebenen E-Mail
Sub unzipMailAttachment(attachment As Object, filename As String, targetPath As String)
Dim tmpFolder As String
Dim sApp As Object
' Anlegen eines temporären Ordners für den ZIP-File
If Right(targetPath, 1) "\" Then ' wenn das letzte Zeichen kein \ ist, dann hänge ein \ _
_
_
hinten dran
targetPath = targetPath + "\"
End If
tmpFolder = path & "\Temp" & Format(Now, "yyyy-mm-dd-hh-mm-ss") & "\"
MkDir (tmpFolder)
' Abspeichern des ZIP-Files
attachment.SaveAsFile tmpFolder & Left(filename, Len(filename) - 3) & "zip"
' Unzip der Datei und kopieren des ZIP Inhalts ins Zielverzeichnis (targetPath)
Set sApp = CreateObject("Shell.Application")
sApp.Namespace(targetPath).CopyHere _
sApp.Namespace(tmpFolder).items
End Sub
Sobald der Debugger an die Stelle
sApp.Namespace(targetPath).CopyHere _
sApp.Namespace(tmpFolder).items
kommt, bekomme ich eine Fehlermeldung: Laufzeitfehler '91': Objektvariable oder With- _
Blockvariable nicht festgelegt. Ich habe mich schon durch die Foren gewühlt, allerdings egal _
welchen Beispielcode ich reinkopiere, diese beiden Zeilen kommen quasi überall vor und scheitern immer bei mir.
Wäre super, wenn mir jemand aus meiner Verzweifelung helfen könnte.
Viele liebe Grüße
Traptor