.net - 如何使用 .Net 创建 Outlook PST 文件?

标签 .net outlook office-interop

我正在编写一个可以操作 Outlook 数据的应用程序。我想先备份该数据,并希望我可以循环浏览联系人/日历项目等并将它们写出到 PST 文件中。

如何使用 .Net 将 1 个或多个 Outlook 文件夹的内容写入 PST? [无论是vb还是c#]

最佳答案

我能够从互联网和 MSDN 文档中的各种示例中拼凑出这段代码。这将允许您选择 Outlook 高级文件夹并备份下面的所有文件夹。就我而言,我实际上并不想要邮件文件夹,因此我将它们排除在外。

        Const BACKUP_PST_PATH As String = "C:\backup.pst"    

        Dim oFolder As Outlook.MAPIFolder = Nothing
        Dim oMailbox As Outlook.MAPIFolder = Nothing

        Dim app As New Outlook.Application()
        Dim ns As Outlook.NameSpace = app.GetNamespace("MAPI")
        Try
            //if the file doesn not exist, outlook will create it
            ns.AddStore(BACKUP_PST_PATH)
            oFolder = ns.Session.Folders.GetLast()
            oMailbox = ns.PickFolder()

         For Each f As Outlook.Folder In oMailbox.Folders
            If f.DefaultItemType <> Microsoft.Office.Interop.Outlook.OlItemType.olMailItem And f.FolderPath <> oFolder.FolderPath Then
                f.CopyTo(oFolder )
            End If
        Next

        ns.RemoveStore(oFolder)

        Catch ex As Exception
            ns.RemoveStore(oFolder)
            IO.File.Delete(BACKUP_PST_PATH)
            Throw ex
        End Try

关于.net - 如何使用 .Net 创建 Outlook PST 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1724789/

相关文章:

c# - 在 C# 中优化代码是否存在风险?

c# - 如何在可接受的误差范围内检查两位小数的相等性

.net - Outlook 2003 和 Outlook 2007 插件 COM 资源发布

c# - 使用 C# 捕获 MS Word 的按键事件

.net - 在 COM 中引用未签名的 .NET 程序集 (Visual Basic 6)

c# - 未找到引用 Rotativa

c# - Office (Outlook) 插件和 EXE 文件

javascript - 准备 Outlook 邮件正文时出现 %0A 问题

c# - 有什么方法可以将 Microsoft word 文档转换为记事本文件 .txt 格式吗?

c# - 区分 Microsoft Excel 中的保存和自动保存事件