根据文件夹路径获取文件夹
此示例先获取文件夹路径,再获取关联的文件夹。
示例
注意
下面的代码示例摘录自 Microsoft Office Outlook 2007 应用程序编程。
在下面的代码示例中,GetKeyContacts 方法使用 GetRootFolder () 属性获取 Contacts\Key Contacts 文件夹的文件夹路径。 然后,它将 FolderPath 属性用作参数,以调用 GetFolder 方法。 如果 GetFolder 返回文件夹,系统便会显示消息,指明已找到“主要联系人”文件夹。 GetFolder 方法需要使用文件夹路径,并返回正确的 Folder 对象。 完成此操作首先需要将 FolderPath 属性拆分到 string 数组中,然后使用该数组从 FolderPath 属性的顶部开始查找正确的 Folder 对象。 如果找不到指定文件夹,GetFolder 返回空引用。
如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 using 语句直接添加到此代码示例中的函数前面,这个语句必须后跟公共类声明。 下面的代码行演示了如何在 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; }
}