添加或删除存储

此代码示例展示了如何在给定配置文件中添加和删除存储。

示例

该代码示例演示如何在指定的配置文件中,通过分别调用 NameSpace 对象上的 AddStoreEx 方法和 RemoveStore 方法来添加和移除存储。

在 Outlook 中,只能以编程方式添加或移除 PST 存储。 以下代码示例添加 Unicode 存储并将 .pst 文件放在用户 .pst 文件的默认位置:Documents and Settings\<UserName>\Local Settings\Application Data\Microsoft\Outlook。 此代码示例使用 Environment.SpecialFolder.LocalApplicationData,检索“本地设置”文件夹下“应用程序数据”文件夹的路径。 添加存储后,此代码示例便会删除存储。 因为 RemoveStore 方法要求 Folder 对象移除 Store 对象,所以它枚举 Stores 集合来查找刚才根据 Store 对象的 FilePath 属性添加的 Store 对象。

RemoveStore 只移除当前配置文件中的存储。 它不删除文件系统中的 .pst 文件。

如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 Importsusing 语句直接添加到此代码示例中的函数前面,这两个语句必须后跟公共类声明。 下面的代码行演示了如何在 Visual Basic 和 C# 中执行导入和分配。

Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub CreateUnicodePST()
    Dim path As String = Environment.GetFolderPath( _
        Environment.SpecialFolder.LocalApplicationData) _
        & "\Microsoft\Outlook\MyUnicodeStore.pst"
    Try
        Application.Session.AddStoreEx( _
            path, Outlook.OlStoreType.olStoreUnicode)
        Dim stores As Outlook.Stores = Application.Session.Stores
        For Each store As Outlook.Store In stores
            If store.FilePath = path Then
                Dim folder As Outlook.Folder = _
                    CType(store.GetRootFolder(), Outlook.Folder)
                ' Remove the store
                Application.Session.RemoveStore(folder)
            End If
        Next
    Catch ex As Exception
        Debug.WriteLine(ex.Message)
    End Try
End Sub
private void CreateUnicodePST()
{
    string path = Environment.GetFolderPath(
        Environment.SpecialFolder.LocalApplicationData)
        + @"\Microsoft\Outlook\MyUnicodeStore.pst";
    try
    {
        Application.Session.AddStoreEx(
            path, Outlook.OlStoreType.olStoreUnicode);
        Outlook.Stores stores = Application.Session.Stores;
        foreach (Outlook.Store store in stores)
        {
            if (store.FilePath == path)
            {
               Outlook.Folder folder =
                    store.GetRootFolder() as Outlook.Folder;
               // Remove the store
               Application.Session.RemoveStore(folder);
            }
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }
}

另请参阅