Table of contents
ALM
C#
TOC
Collapse the table of content
Expand the table of content

C# - ¿Cómo encontrar los archivos pst de Outlook?

Microsoft Community Publishing Service|Última actualización: 26/05/2017
|
1 Colaborador

Juan Carlos Ruiz

Por Juan Carlos Ruiz Pacheco, Microsoft Senior Technology Evangelist

NetworkUrl
Twitterhttps://twitter.com/JuanKRuiz
Facebookhttps://www.facebook.com/JuanKDev
LinkdInhttp://www.linkedin.com/in/juankruiz
Bloghttps://juank.io

Recuerda que
Puedes ver el artículo original en: C# - Cómo encontrar los archivos pst de outlook?

Con ayuda de las facilidades de interoperabilidad que ofrece .Net Framework y desde luego con ayuda de Visual Studio este proceso es bastante sencillo.

El primer paso es desde luego agregar una referencia al Outlook para que Visual Studio nos importe el componente y esto nos permita acceder al objeto COM como lo haríamos normalmente con cualquiero otra librería para usar con el framework.

El componente COM a que debemos acceder es (o equivalente de acuerdo a la versión de office instalada):

Como buena práctica resulta importante colocarle un alias al namespace, por ejemplo:

    using Outlook = Microsoft.Office.Interop.Outlook;

Los pasos que se deben realizar son:

Instanciar un objeto de la aplicación (outlook)

  • Obtener los stores (almacenamientos de datos) para la sesión actual

  • Verificar que exista un FilePath, esto es necesario puesto que si el store esta en exchange el FilePath es nulo.

  • Verificar que el FilePath termine en “.pst”, pues algunos stores de caché tienen extensiones diferentes.

  • El resto es maquillaje

      using System;
      using System.Text;
      using Outlook = Microsoft.Office.Interop.Outlook;
    
      class Program { static void Main(string[] args)
         { 
          StringBuilder sb = new StringBuilder();
          Outlook._Application outlookObj = new Outlook.Application();
          foreach (Outlook.Store store in outlookObj.Session.Stores)
          if (store.FilePath != null && store.FilePath.EndsWith(".pst"))
          sb.AppendLine(store.FilePath);
          Console.WriteLine(sb.ToString());
          Console.ReadLine();
          }
      }
    

Happy Learning!

© 2018 Microsoft