Compartir a través de


Obtener una carpeta con la ruta de acceso

Este ejemplo toma una ruta de acceso y obtiene la carpeta asociada.

Ejemplo

Nota:

El siguiente ejemplo de código es un fragmento de Programming Applications for Microsoft Office Outlook 2007 (Programación de aplicaciones para Microsoft Office Outlook 2007).

En el siguiente ejemplo de código, el método GetKeyContacts usa la propiedad GetRootFolder() para obtener la ruta de acceso de la carpeta Contacts\Key Contacts. Después se llama al método GetFolder utilizando la propiedad FolderPath como argumento. Si GetFolder devuelve una carpeta, aparecerá un mensaje que indica que se encontraron los contactos clave. El método GetFolder toma una ruta de acceso a una carpeta y devuelve el objeto Folder correcto. Esto se realiza dividiendo primero la propiedad FolderPath en una matriz de cadenas y después usando dicha matriz para buscar el objeto Folder correcto empezando desde la parte superior de la propiedad FolderPath. Si no se encuentra la carpeta especificada, GetFolder devuelve una referencia nula.

Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private void GetKeyContacts()
{
    string folderPath =
        Application.Session.
        DefaultStore.GetRootFolder().FolderPath
        + @"\Contacts\Key Contacts";
    Outlook.Folder folder = GetFolder(folderPath);
    if (folder != null)
    {
        //Work with folder here
        Debug.WriteLine("Found Key Contacts");
    }
}

// Returns Folder object based on folder path
private Outlook.Folder GetFolder(string folderPath)
{
    Outlook.Folder folder;
    string backslash = @"\";
    try
    {
        if (folderPath.StartsWith(@"\\"))
        {
            folderPath = folderPath.Remove(0, 2);
        }
        String[] folders =
            folderPath.Split(backslash.ToCharArray());
        folder =
            Application.Session.Folders[folders[0]]
            as Outlook.Folder;
        if (folder != null)
        {
            for (int i = 1; i <= folders.GetUpperBound(0); i++)
            {
                Outlook.Folders subFolders = folder.Folders;
                folder = subFolders[folders[i]]
                    as Outlook.Folder;
                if (folder == null)
                {
                    return null;
                }
            }
        }
        return folder;
    }
    catch { return null; }
}        

Vea también