从存储在许多子文件夹中的* .msg文件中提取附件 [英] Extracting Attachments from *.msg files stored in many subfolders

查看:507
本文介绍了从存储在许多子文件夹中的* .msg文件中提取附件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的代码从存储在一个文件夹中的* .msg文件中提取附件.

The below code extracts attachments from *.msg files stored in one folder.

我正试图从存储在文件夹内许多子文件夹中的* .msg文件中提取附件.

I'm seeking to extract attachments from *.msg files stored in many subfolders within a folder.

主文件夹的路径为:
U:\ XXXXX \ XXXXX \主文件夹

The path for the main Folder is:
U:\XXXXX\XXXXX\Main Folder

子文件夹的路径为:
U:\ XXXXX \ XXXXX \主文件夹\ Folder1
U:\ XXXXX \ XXXXX \主文件夹\ Folder2
U:\ XXXXX \ XXXXX \主文件夹\ Folder3

The paths for the subfolders are:
U:\XXXXX\XXXXX\Main Folder\Folder1
U:\XXXXX\XXXXX\Main Folder\Folder2
U:\XXXXX\XXXXX\Main Folder\Folder3
etc.

Sub SaveOlAttachments()

Dim msg As Outlook.MailItem
Dim att As Outlook.Attachment
Dim strFilePath As String
Dim strAttPath As String

    'path for msgs
strFilePath = "U:\XXXXX\XXXXX\Main Folder\"
    'path for saving attachments
strAttPath = "D\Attachments\"

strFile = Dir(strFilePath & "*.msg")
Do While Len(strFile) > 0
    Set msg = Application.CreateItemFromTemplate(strFilePath & strFile)
    If msg.Attachments.Count > 0 Then
         For Each att In msg.Attachments
             att.SaveAsFile strAttPath & att.FileName
         Next
    End If
    strFile = Dir
Loop

End Sub

推荐答案

使用我在

子执行搜索:

Sub GetFiles(StartFolder As String, Pattern As String, _
             DoSubfolders As Boolean, ByRef colFiles As Collection)

    Dim f As String, sf As String, subF As New Collection, s

    If Right(StartFolder, 1) <> "\" Then StartFolder = StartFolder & "\"

    f = Dir(StartFolder & Pattern)
    Do While Len(f) > 0
        colFiles.Add StartFolder & f
        f = Dir()
    Loop

    sf = Dir(StartFolder, vbDirectory)
    Do While Len(sf) > 0
        If sf <> "." And sf <> ".." Then
            If (GetAttr(StartFolder & sf) And vbDirectory) <> 0 Then
                    subF.Add StartFolder & sf
            End If
        End If
        sf = Dir()
    Loop

    For Each s In subF
        GetFiles CStr(s), Pattern, True, colFiles
    Next s

End Sub

这篇关于从存储在许多子文件夹中的* .msg文件中提取附件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆