Создание элемента Contact из файла vCard и сохранение этого элемента в папке
В этом примере показано, как импортировать все файлы vCard в папку файловой системы и сохранить контакты в папке, указанной в параметре targetFolder.
Пример
Здесь применяется метод OpenSharedItem. Метод OpenSharedItem открывает сообщения, сохраненные в виде файлов с форматом сообщений Outlook (MSG), файлов встреч в формате iCalendar (ICS) или файлов vCard (VCF). Обязательно отнесите возвращенный объект к подходящему типу элемента и вызовите соответствующий метод Save для сохранения этого элемента. Элемент, возвращаемый OpenSharedItem, по умолчанию сохраняется в стандартной папке, которая выбрана для определенного типа элемента. Чтобы переместить элемент в другую папку, воспользуйтесь методом Move.
Если для тестирования этого примера кода вы используете Visual Studio, сначала добавьте ссылку на компонент библиотеки объектов Microsoft Outlook 15.0 и укажите переменную Outlook при импорте пространства имен Microsoft.Office.Interop.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();
}
}
}
}