通过 vCard 文件创建联系人项,并将项保存到文件夹中
此代码示例将所有 vCard 文件导入文件系统文件夹中,并将联系人保存到 targetFolder 参数指定的文件夹中。
示例
该示例使用 OpenSharedItem 方法。 OpenSharedItem 方法打开存储为 Outlook 邮件格式 (.msg) 文件、iCalendar 约会 (.ics) 文件或 vCard (.vcf) 文件的邮件。 确保将返回的对象转换为适当的项目类型并调用相应的 Save 方法来使项目持久。 默认情况下, OpenSharedItem 返回的项目保存在特定项目类型的默认文件夹中。 可使用相应的 Move 方法将项目移动到不同文件夹中。
如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 Imports 或 using 语句直接添加到此代码示例中的函数前面,这两个语句必须后跟公共类声明。 下面的代码行演示了如何在 Visual Basic 和 C# 中执行导入和分配。
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub ImportContacts( _
ByVal path As String, ByVal targetFolder As Outlook.Folder)
Dim contact As Outlook.ContactItem
Dim moveContact As Outlook.ContactItem
If (Directory.Exists(path)) Then
Dim files As String() = Directory.GetFiles(path, "*.vcf")
For Each file As String In files
contact = CType(Application.Session.OpenSharedItem(file), _
Outlook.ContactItem)
If (targetFolder Is _
CType(Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderContacts) _
, Outlook.Folder)) Then
contact.Save()
Else
moveContact = CType(contact.Move(targetFolder), _
Outlook.ContactItem)
moveContact.Save()
End If
Next
End If
End Sub
private void ImportContacts(string path, Outlook.Folder targetFolder)
{
Outlook.ContactItem contact;
Outlook.ContactItem moveContact;
if (Directory.Exists(path))
{
string[] files = Directory.GetFiles(path, "*.vcf");
foreach (string file in files)
{
contact = Application.Session.OpenSharedItem(file)
as Outlook.ContactItem;
if (targetFolder ==
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderContacts)
as Outlook.Folder)
{
contact.Save();
}
else
{
moveContact = contact.Move(targetFolder)
as Outlook.ContactItem;
moveContact.Save();
}
}
}
}