在c#中从outlook添加文件夹到pst文件

时间:2012-04-03 11:50:59

标签: c# .net outlook

我一直在尝试找到一种方法,将文件夹从c#

添加到pst文件中

我已经尝试了一大堆代码来尝试让它工作,这是一个似乎最可能是正确的(因为它在MSDN上是什么)但仍然无法正常工作

Main {

Outlook._Application OutlookObject = new Outlook.Application();
            Outlook.Store NewPst = null;
           // create the pst file
            string pstlocation = "C:\\Users\\Test\\Desktop\\PST\\Test.pst";
            try
        {
            OutlookObject.Session.AddStore(pstlocation);

            foreach (Outlook.Store store in OutlookObject.Session.Stores)
            {
                if (store.FilePath == pstlocation)
                {
                    // now have a referance to the new pst file
                    NewPst = store;
                    Console.WriteLine("The Pst has been created");
                }
            }
        }
        catch
        { }
        // create a folder or subfoler in pst
        Outlook.MAPIFolder NewFolder;

        NewFolder = NewPst.Session.Folders.Add("New Test Folder", Type.Missing);
}

此代码创建一个新的PST文件,然后尝试添加一个文件夹,但是最后一行代码:

New NewFolder = NewPst.Session.Folders.Add("New Test Folder", Type.Missing);

获取错误“操作失败”。和“无效的演员例外”可以指出我做错了什么

提前致谢

1 个答案:

答案 0 :(得分:4)

您需要使用Store.GetRootFolder()来获取该商店的根文件夹的句柄 Store.Session)。所以你会使用:

// create a folder or subfolder in pst    
Outlook.MAPIFolder pstRootFolder = NewPst.GetRootFolder();
Outlook.MAPIFolder NewFolder = pstRootFolder.Folders.Add("New Test Folder");

我建议将以下两个书签:PIA文档并不总是完整,因此有必要查看COM文档以及完整的课程和成员信息。