2012-12-13 45 views
0

在MS Outlook 2003 VB腳本中,我想將附件從一個mailItem複製到另一個。源mailtItem是模板消息。 我使用的代碼是這樣的:Outlook和VB.net - 向mailItem添加附件時存在錯誤的訪問權限

Sub copyAllAttachments(source, target) 
    Dim fileName, i 
    For i = 1 To source.Attachments.Count 
    fileName = fileSystem.GetSpecialFolder(2) & "\" & source.Attachments.Item(i).FileName 

    On Error Resume Next 
    source.Attachments.Item(i).SaveAsFile(fileName) 
    On Error Goto 0 

    target.Attachments.Add fileName, 1 
    fileSystem.DeleteFile fileName, True  
    Next 
End Sub 

這正常工作與50個用戶,但一個。他總是有一個錯誤就行了target.Attachments.Add fileName, 1說,該文件無法被創建。並且他應該檢查他想要創建附件的文件夾的訪問權。 他的設置似乎與其他人不同,文件夾是他的TEMP文件夾

任何人都可以幫助我解決這個謎或給我一個提示,在哪裏看? :-)

回答

0

你能記錄有問題的附件文件名嗎?
你確定錯誤來自Attachments.Add行,而不是SaveAsFile行嗎?
它確定聽起來像你有一個無效的文件名的附件 - Outlook不執行驗證,所以有可能Attachment.Filename屬性包含的值不是Windows上的有效文件名。或者它根本沒有任何價值 - 你確實需要檢查文件名的有效性,也可能是Attachment.Type屬性:SaveAsFile方法(甚至是Filename屬性)將失敗,例如嵌入的OLE附件。

+0

嗨,謝謝你的回答。系統管理員爲該問題用戶部分解決了該問題。他們刪除並重新創建了他的整個臨時文件夾,所以Outlook現在沒有任何問題。但我很確定,它在'target.Attachments.Add fileName,1'這行上失敗了。另外,我知道如果該文件不是問題,那麼該名稱。表單中放置了一個附有一個文件的模板。這個操作對於50個左右的用戶是可以的,但是隻有一個失敗。 對我來說,這仍然是Microsoft Office套件的一個謎。仍然有一些非常奇怪的錯誤。 – premma