2012-05-03 16 views
8

ho cercato di capire come ottenere un elenco di tutte le cartelle di Outlook per un bel po 'di tempo, ma può ottenere solo un elenco delle cartelle predefinite (ad esempio Posta in arrivo, in uscita, ha inviato articoli, articoli cancellati, ecc ...). Cosa succede se ho cartelle personali o personalizzate che ho creato? Ad esempio, se aggiungo una cartella a Outlook chiamata "Ricevute", questa non sarebbe una cartella predefinita e non verrebbe visualizzata nelle "cartelle predefinite". Come potrei accedere a questa cartella usando Microsoft.Office.Interop.Outlook in C#.ottenere l'elenco di tutte le cartelle di Outlook e sottocartelle

Sto tentando di creare un modo per scaricare automaticamente alcuni nuovi messaggi in un foglio di calcolo da una determinata cartella. Ho capito se posso ottenere un elenco di tutte le cartelle, quindi posso solo ottenere i messaggi dalle cartelle scelte.

Outlook._Folders oFolders;   
Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolder‌​Inbox).Parent; 
foreach (Outlook.MAPIFolder Folder in oFolders) 
+1

cosa fa il tuo look codice come la società ottiene che solo alcune delle cartelle? – sarnold

+0

Bene, ho provato a postare il mio codice ma sono limitato. In sostanza, si riduce a questo (Moderatori, si può modificare questo?): Microsoft.Office.Interop.Outlook._Folders oFolders; Microsoft.Office.Interop.Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder (Microsoft.Office.Interop.OutDownload.OlDefaultFolders.olFolderInbox) .Parent; foreach (Microsoft.Office.Interop.Outlook.MAPIFolder Folder in oFolders) Questo non è il mio codice esatto, solo una versione condensata che ho copiato (mi dispiace). – mtlca401

risposta

8

Questo dovrebbe stampare tutte le cartelle nella prospettiva comprese le cartelle pubbliche.

foreach (MAPIFolder folder in olNS.Folders) 
{ 
    GetFolders(folder); 
} 

public void GetFolders(MAPIFolder folder) 
{ 
    if (folder.Folders.Count == 0) 
    { 
     Console.WriteLine(folder.FullFolderPath); 
    } 
    else 
    { 
     foreach (MAPIFolder subFolder in folder.Folders) 
     { 
       GetFolders(subFolder); 
     } 
    } 
} 
Problemi correlati