Partager via


Obtention d’un dossier à partir de son chemin d’accès

Cet exemple illustre un chemin d’accès à un dossier et obtient le dossier associé.

Exemple

Remarque

L’exemple de code suivant est extrait du livreprogrammation d’Applications pour Microsoft Office Outlook 2007 (non traduit)..

Dans l’exemple de code suivant, la méthode GetKeyContacts utilise la propriété GetRootFolder() pour obtenir le chemin du dossier Contacts\Key Contacts. La méthode GetFolder est ensuite appelée en utilisant la propriété FolderPath comme argument. Si GetFolder renvoie un dossier, un message s’affiche indiquant que le dossier Key Contacts a été trouvé. La méthode GetFolder prend un chemin d’accès à un dossier et renvoie l’objet Folder correct. Pour ce faire, la propriété FolderPath est tout d'abord divisée en tableau de type string, puis ce tableau est utilisé pour trouver l'objet Folder correct en commençant par le haut de la propriété FolderPath. Si le dossier spécifié est introuvable, GetFolder renvoie une référence NULL.

Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L’instruction using ne doit pas se produire juste avant les fonctions de l’exemple de code, mais doit être ajoutée avant la déclaration publique. La ligne de code suivante montre comment effectuer l’importation et l’affectation dans 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; }
}        

Voir aussi