Share via


Abrufen eines Ordners basierend auf seinem Ordnerpfad

In diesem Beispiel wird ein Ordnerpfad verwendet und der zugehörige Ordner abgerufen.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

Im folgenden Codebeispiel verwendet die GetKeyContacts-Methode die GetRootFolder() -Eigenschaft, um den Ordnerpfad des Ordners Kontakte\Schlüsselkontakte abzurufen. Die GetFolder-Methode wird dann mithilfe der FolderPath-Eigenschaft als Argument aufgerufen. Wenn GetFolder einen Ordner zurückgibt, wird eine Meldung angezeigt, die besagt, dass die wichtigen Kontakte gefunden wurden. Die GetFolder-Methode übernimmt den Pfad zum Ordner und gibt das richtige Folder-Objekt zurück. Hierzu wird die FolderPath-Eigenschaft in einen string-Array geteilt und dieser dazu verwendet, das richtige Folder-Objekt zu finden, indem die FolderPath-Eigenschaft von oben an durchsucht wird. Wenn der angegebene Ordner nicht gefunden wird, gibt GetFolder einen Null-Verweis zurück.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

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

Siehe auch