我試圖用AddStore
添加在Outlook中新的PST,然後檢查是否新增加的PST具有相同的文件夾和子文件夾默認的PST不存在如果沒有,則會創建文件夾,然後執行其他命令。錯誤檢查在第一PST文件夾和子文件夾,並創建如果第二PST
我在這裏包含的代碼的一部分,其中的循環和創建應該做的,但我發現錯誤"Cannot Create Folder"
在該行newDestFolder = destFolderRoot.Folders.Add(sourceFolder.Name)
如何檢查是否在新的PST不存在,創建的文件夾因此,這也應該適用於子文件夾。
# ($除外).StackTrace
at Microsoft.Office.Interop.Outlook._Folders.Add(String Name, Object Type)
at AutoBackup.ThisAddIn.SetSrcAndDst(String Src, String Dst)
in E:\projects\ThisAddIn.vb:line 76
# 碼部分
sFolders = oNspace.Folders.Item(src_pst).Folders
destFolderRoot = oNameSpace.Folders.Item(dst_pst)
destFolders = oNameSpace.Folders.Item(dst_pst).Folders
For Each sourceFolder In sourceFolders
For Each destFolder In destFolders
If sourceFolder.Name = destFolder.Name Then
'do something
Else
newDestFolder = destFolderRoot.Folders.Add(sourceFolder.Name)
End If
Next
Next
更新
我試過另一種方式使用For Loop
來檢查它是否正在工作(代碼如下),這次在第二個pst中非退出的文件夾已成功創建,但還有另一個問題: 第一次循環時,它會創建非第二pst中存在的文件夾,但在創建新文件夾後,其餘的循環未檢測到此情況sFolders.Item(i).Name = dFolders.Item(i).Name
寧可返回默認文件夾如Deleted Items, Inbox, Sent
到Else
條件,然後轉而返回錯誤"Cannot Create Folder"
,因爲該文件夾已存在於第二PST,這是我怎麼知道我爲什麼用For Each
循環得到的錯誤在第一時間因條件而不能正常工作和現有文件夾返回Else
條件來創建新的文件夾。可能會出現專家的解決方案,但我似乎沒有從Google上獲得任何提示,但我也不是很專業。
For i = 1 To sFolders.Count
If sFolders.Item(i).Name = dFolders.Item(i).Name Then
Call CopyMail(sFolders.Item(i), dFolders.Item(i))
ElseIf sFolders.Item(i).Name IsNot dFolders.Item(i).Name Then
dFolderN = dFolderR.Folders.Add(sFolders.Item(i).Name)
End If
Next
[Create Directory + Sub Directories](https://stackoverflow.com/questions/1680836/create-directory-sub-directories) –
對不起。它不是很可能的解決方案。我的文章是關於用VB編寫的outlook add-Inn。感謝檢查,雖然 – Hayan
C#解決方案將(幾乎)總是在VB中工作。下面是對[微軟的文檔]鏈接(https://msdn.microsoft.com/en-us/library/54a0at6s(V = vs.110)的.aspx)。它包含C#和VB示例。 –