Unzip einer übergebenen Datei
13.11.2018 06:52:11
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
Anzeige