Erstellen eines Kontaktelements aus einer vCard-Datei und Speichern des Elements in einem Ordner
In diesem Beispiel werden alle vCard-Dateien aus einem Dateisystemordner importiert und die Kontakte im durch den targetFolder-Parameter angegebenen Ordner gespeichert.
Beispiel
In dem Beispiel wird die OpenSharedItem-Methode verwendet. Die OpenSharedItem-Methode öffnet Nachrichten, die als Dateien im Outlook-Nachrichtenformat (MSG), iCalendar-Termindateien (ICS) oder vCard-Dateien (VCF) gespeichert sind. Vergessen Sie nicht, das zurückgegebene Objekt in den entsprechenden Elementtyp umzuwandeln und die entsprechende Save-Methode aufzurufen, um das Element dauerhaft zu speichern. Standardmäßig wird das von OpenSharedItem zurückgegebene Element im Standardordner für den jeweiligen Elementtyp gespeichert. Sie können das Element mit der entsprechenden Move-Methode in einen anderen Ordner verschieben.
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 Anweisung Imports oder using darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgenden Codezeilen zeigen, wie Sie den Import und die Zuweisung in Visual Basic und C# vornehmen.
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();
}
}
}
}