Ich weiß, wie Sie Dateien zu MailItem.Attachments hinzufügen, aber wie überprüfe ich, ob die Datei bereits zu den Anlagen hinzugefügt wurde?MailItem Attachments - Überprüfen, ob die Datei bereits angehängt ist
Zum Beispiel habe ich den Dateinamen "C:\\myFolder\\myFile.txt"
. Wie überprüfe ich, ob diese Datei bereits angehängt ist oder nicht? Ich brauche das, um zu verhindern, dass eine Datei doppelt an eine neue E-Mail angehängt wird.
Hier ist, was ich bisher:
var mItem = Outlook.Interfaces.HostAddIn.Application.ActiveInspector().CurrentItem as MailItem;
if (mItem != null)
{
//this works fine but I need to check if already attached first like below
//mItem.Attachments.Add(localFilePath);
bool found = false;
string attachments = "";
for (int i = 1; i <= mItem.Attachments.Count; i++)
{
attachments +=
"DisplayName: " + mItem.Attachments[i].DisplayName //shows just myFile.txt, no path
+ "/FileName: " + mItem.Attachments[i].FileName //shows just myFile.txt, no path
+ "/PathName: " + mItem.Attachments[i].PathName; //shows ""
//I tried here PathName, FileName, DisplayName but all return just name, without the path
if (mItem.Attachments[i].PathName == localFilePath)
{
found = true;
}
}
if (!found)
{
mItem.Attachments.Add(localFilePath); //attach only if not already attached
}
}
Danke Dmitry. Gibt es keine Möglichkeit, nur den Pfad und den Dateinamen auf den Pfad und den Dateinamen der Datei zu überprüfen, die ich angehängt habe? Ich füge eine Datei zu den Anlagen hinzu, die den Pfad + fileName der Datei zur Verfügung stellen. Ich bin überzeugt, dass ich nicht von bereits angehängten Dateien das gleiche bekommen kann. – pixel
Nein, die Pfadinformationen werden niemals gespeichert, es sei denn, es handelt sich um eine Referenzdatei. Auf der MAPI-Ebene spielen Dateien nicht einmal eine Rolle - die Daten kommen als IStream in die Eigenschaft PR_ATTACH_DATA_BIN. –
Danke eine Million Dmitry – pixel