首页 文章

在outlook |中创建文件夹 . 净

提问于
浏览
0

我通过.net应用程序在microsoft outlook中创建文件夹但是当我重新启动outlook时它才会显示 . 应该显示新文件夹而不重新启动Outlook . 我使用下面的代码:

Outlook.NameSpace nameSpace = OutlookApp.GetNamespace("MAPI");
        Outlook.MAPIFolder folderInbox = nameSpace.GetDefaultFolder               
       (Outlook.OlDefaultFolders.olFolderInbox);
        Outlook.Folders inboxFolders = folderInbox.Folders;
        Outlook.MAPIFolder subfolderInbox = null;

        Outlook.Application oApp;
        oApp = nameSpace.Application;
        Outlook.Explorer exp = oApp.ActiveExplorer();

         subfolderInbox = inboxFolders.Add("InboxSubfolder",  
         Outlook.OlDefaultFolders.olFolderInbox);
         exp.CurrentFolder = subfolderInbox;

1 回答

  • 0

    我看到你正在使用Add-in Express .

    我将您的代码附加到adxRibbonButton控件,它对我有用 .
    你怎么称这个代码?
    我看到一些不必要的对象创建,并在下面的编辑版本中删除它们 .

    还 - you want to make sure to release the Office objects you create .

    我建议更新代码如下:

    private void adxRibbonButton1_OnClick(object sender, IRibbonControl control, bool pressed)
        {
            Outlook.NameSpace nameSpace = OutlookApp.Session; //OutlookApp.GetNamespace("MAPI");
    
            Outlook.MAPIFolder folderInbox = nameSpace.GetDefaultFolder
           (Outlook.OlDefaultFolders.olFolderInbox);
            Outlook.Folders inboxFolders = folderInbox.Folders;
            Outlook.MAPIFolder subfolderInbox = null;
    
            //Outlook.Application oApp;
            //oApp = nameSpace.Application;
            Outlook.Explorer exp = OutlookApp.ActiveExplorer(); //oApp.ActiveExplorer();
    
            subfolderInbox = inboxFolders.Add("InboxSubfolder",
                Outlook.OlDefaultFolders.olFolderInbox);
                exp.CurrentFolder = subfolderInbox;
    
            //Release COM Objects
            if (exp != null) Marshal.ReleaseComObject(exp);
            if (subfolderInbox != null) Marshal.ReleaseComObject(subfolderInbox);
            if (inboxFolders != null) Marshal.ReleaseComObject(inboxFolders);
            if (folderInbox != null) Marshal.ReleaseComObject(folderInbox);
            if (nameSpace != null) Marshal.ReleaseComObject(nameSpace);
        }
    

相关问题