首页 文章

保存具有不同名称的相同名称附件

提问于
浏览
0

我使用此链接中的现有脚本:https://www.extendoffice.com/documents/outlook/3747-outlook-auto-download-save-attachments-to-folder.html将电子邮件中的所有附件保存到目录 .

当收到包含两个具有相同名称的不同文件的电子邮件时,将保存其中一个附件,并覆盖一个附件 .

我试图检查现有文件并在下一个文件的末尾添加一个数字 . 我删除了脚本的那部分 .

我试图在文件名中添加一个随机生成的整数,以及一个时间戳,使每个文件都是唯一的 .

目前的脚本如下:

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim date_now As Date
Dim dateStamp As String
Dim LRandomNumber As Integer

LRandomNumber = Int((300 - 200 + 1) * Rnd + 200)
date_now = Now()
dateStamp = Format(date_now, "yyyy-mm-dd-hh-mm-ss")

sSaveFolder = "c:\filepath"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & dateStamp & LRandomNumber & oAttachment.DisplayName
Next
End Sub

1 回答

  • 0

    dateStamp 的末尾添加一个与附件序列号相关的唯一标识符 .

    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & dateStamp & oAttachment.ID & LRandomNumber & oAttachment.DisplayName
    Next
    

    你也可以控制一下:

    For iterator = 1 to MItem.Attachments.Count
            oAttachment.SaveAsFile sSaveFolder & dateStamp & iterator & LRandomNumber & oAttachment.DisplayName
    Next
    

    当然,在最合适的地方添加这个鉴别器(可能在 LRandomNumber 之后)

    您使用随机数的问题是您将其设置在循环外部,因此每个附件将获得相同的数字(先前随机设置) . 另外,不能保证下一个随机数与最后一个不同(这是关于随机性的事情 - 没有保证) . 我怀疑,如果你应用我上面的方法,你将不需要随机数 .

相关问题