我试图用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示例。 –