2012-03-07 15 views
1

に変更しました。数日後、送信済みメールフォルダの名前を変更しようとしていました。削除された要素と受信トレイフォルダはC#で変更されています。私はこのような何かをしようと試みてきたOutlookのPSTファイルの名前を

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); 
} 

しかし、成功せずに

。私はいつも名前を変更する権限を持っていないという例外があります。他のカスタム作成フォルダ私は問題なく名前を変更できます。

フォルダのロックを解除するには何かする必要がありますか? また、フォルダにアクセスする他の可能性はありますか?

どうもありがとう

編集:Expetionがある:あなたは権限がありません。このコードは、私がadministatorモードでのVisual Studioを実行しme..whenのために働いている

+0

問題の例外のためのドキュメントを提供してください。あなたのブール代入ステートメントはほとんど意味がありません。 –

+0

私はOutlook 2010で同じオプションを探していますが、運は全くありません。どうやらこのオプションはありません。私が理解している限り、古いバージョンのOutlookはデフォルトフォルダの名前の変更をサポートしていました。私はどんなアイデアも歓迎する。 –

答えて

1
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); 
      } 
     } 
    } 

..

+0

二重フォルダの名前を変更する必要性について教えてください。 'folder.Name =(folder.Name = name);' –

関連する問題