C# 重命名Outlook PST文件中的文件夹

C# 重命名Outlook PST文件中的文件夹,c#,outlook,outlook-2007,outlook-2010,pst,C#,Outlook,Outlook 2007,Outlook 2010,Pst,几天以来,我一直试图通过c#重命名已发送邮件文件夹、已删除元素和收件箱文件夹 我试过这样的方法: List<Outlook.MailItem> mailItems = new List<Outlook.MailItem>(); Outlook.Application app = new Outlook.Application(); Outlook.NameSpace outlookNs = app.GetNamespace

几天以来,我一直试图通过c#重命名已发送邮件文件夹、已删除元素和收件箱文件夹

我试过这样的方法:

 List<Outlook.MailItem> mailItems = new List<Outlook.MailItem>();
            Outlook.Application app = new Outlook.Application();
            Outlook.NameSpace outlookNs = app.GetNamespace("MAPI");
            // Add PST file (Outlook Data File) to Default Profile
            outlookNs.AddStore(pstFilePath);
            Outlook.MAPIFolder rootFolder = outlookNs.Stores[pstName].GetRootFolder();

           Outlook.Folders subFolders = rootFolder.Folders;

  foreach (Outlook.Folder folder in subFolders)
            {

              folder.Name =  (folder.Name == "deleted Elements"?"deleted":folder.Name);
}
List mailtimes=new List();
Outlook.Application app=新建Outlook.Application();
Outlook.NameSpace outlookNs=app.GetNamespace(“MAPI”);
//将PST文件(Outlook数据文件)添加到默认配置文件
AddStore(pstFilePath);
Outlook.MAPIFolder rootFolder=outlookNs.Stores[pstName].GetRootFolder();
Outlook.Folders子文件夹=根文件夹.Folders;
foreach(子文件夹中的Outlook.Folder文件夹)
{
folder.Name=(folder.Name=“已删除元素”?“已删除”:folder.Name);
}
但是没有成功。我总是得到一个例外,我没有更改名称的权限。其他自定义创建的文件夹,我可以重命名没有任何问题

是否要执行某些操作来解锁文件夹? 或者是否有其他可能访问文件夹

非常感谢

编辑:费用是:您没有权限

public string RenameFolder(string name, string folderid)
    {
        Outlook.Application app = new Outlook.Application();
        Outlook.NameSpace ns = null;
        Outlook.Folder folder = null;
        string n= null;

        try
        {
            ns = app.GetNamespace("MAPI");
            folder = ns.GetFolderFromID(folderid) as Outlook.Folder;
            n=folder.Name;
            folder.Name = (folder.Name = name) ;
            return n + " has been successfully changed to " + folder.Name;
        }
        catch (System.Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (app != null)
            {
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(app);
            }

            if (folder != null)
            {
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(folder);
            }

            if (ns != null)
            {
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ns);
            }
        }
    }
此代码适用于我..当我在管理员模式下运行visual studio时


此代码适用于我。当我在管理员模式下运行visual studio时。

请提供有关异常的文档。你的布尔赋值语句没有什么意义。我在Outlook 2010中寻找相同的选项,但一点运气都没有。显然,这是没有选择的。据我所知,较旧版本的outlook支持对默认文件夹进行重命名。我欢迎任何想法。请提供有关例外情况的文档。你的布尔赋值语句没有什么意义。我在Outlook 2010中寻找相同的选项,但一点运气都没有。显然,这是没有选择的。据我所知,较旧版本的outlook支持对默认文件夹进行重命名。我欢迎任何意见。你能解释一下双文件夹重命名的必要性吗<代码>folder.Name=(folder.Name=名称)folder.Name=(folder.Name=名称)