2012-05-03 10 views
8

He estado intentando averiguar cómo obtener una lista de todas las carpetas de Outlook desde hace bastante tiempo, pero solo puedo obtener una lista de las carpetas predeterminadas (es decir, Bandeja de entrada, bandeja de salida, artículos, artículos eliminados, etc ...). ¿Qué sucede si tengo carpetas personales o personalizadas que he creado? Por ejemplo, si agrego una carpeta a Outlook llamada "Receipts", esta no sería una carpeta predeterminada y no aparecería en las "carpetas predeterminadas". ¿Cómo accedería a esta carpeta usando Microsoft.Office.Interop.Outlook in C#.Obtengo una lista de todas las carpetas y subcarpetas de Outlook

Estoy tratando de crear una forma de descargar automáticamente ciertos mensajes nuevos en una hoja de cálculo desde cualquier carpeta. Pensé que si podía obtener una lista de todas las carpetas, solo puedo obtener los mensajes de las carpetas elegidas.

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

Lo que se ve su código como ahora que sólo recibe algunas de las carpetas? – sarnold

+0

Bueno, traté de publicar mi código, pero estoy limitado. Básicamente, se reduce a esto (Moderadores, ¿puedes editar esto?): Microsoft.Office.Interop.Outlook._Folders oFolders; Microsoft.Office.Interop.Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder (Microsoft.Office.Interop.Ollook.OlDefaultFolders.olFolderInbox) .Parent; foreach (Microsoft.Office.Interop.Outlook.MAPIFolder Folder en oFolders) Esto no es mi código exacto, solo una versión condensada que copié (lo siento). – mtlca401

Respuesta

8

Esto debería imprimir todas las carpetas de su perspectiva, incluidas sus carpetas públicas.

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