ich entwickle gerade ein kleines Programm, mit dem ich die E-Mails sowie Meetings exportieren kann. Alles Items sollen auf dem Dateisystem gespeichert werden, mit der Ordnerstruktur wie sie in Outlook angelegt sind.
private void ExportItems(MAPIFolder folder)
{
Directory.CreateDirectory(ExportPathField.Text + folder.FullFolderPath);
Items items = folder.Items;
if (items.Count > 0)
{
for (int counter = 1; counter ≤ items.Count; counter++)
{
object item = items[counter];
switch (Microsoft.VisualBasic.Information.TypeName(item))
{
case "MailItem":
(item as MailItem).SaveAs(ExportPathField.Text + folder.FullFolderPath + @"\" + (item as MailItem).ReceivedTime.ToOADate() + ".msg");
break;
case "MeetingItem":
(item as MeetingItem).SaveAs(ExportPathField.Text + folder.FullFolderPath + @"\" + (item as MeetingItem).ReceivedTime.ToOADate() + ".msg");
break;
default:
break;
}
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(item);
}
}
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(items);
for (int counter = 1; counter ≤ folder.Folders.Count; counter++)
{
ExportItems(folder.Folders[counter]);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(folder.Folders[counter]);
}
}
Das Programm funktioniert mir kleinen Postfächern super, allerdings gibt es bei größeren eine "System.OutOfMemoryException". Der bis dort hin exportierte Ordner ist dann 999MB groß. Ich habe den Build schon auf 64-Bit umgestellt und in der App.cfg folgendes eingefügt, allerdings ohne Erfolg:
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
Ich hoffe Ihr könnt mir helfen und sagen wo mein Fehler ist.
Viele Grüße