Я знаю, как добавлять файлы в MailItem.Attachments, но как проверить, добавлен ли файл в приложения?Вложения MailItem - проверьте, прикреплен ли файл уже
Например, у меня есть имя файла "C:\\myFolder\\myFile.txt"
. Как проверить, прикреплен ли этот файл или нет? Мне нужно это, чтобы предотвратить двойное прикрепление файла к новому письму.
Вот то, что я до сих пор:
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
}
}
Спасибо, Дмитрий. Не существует способа проверить только путь + имя файла на путь + имя файла файла, который я прикрепляю? Я добавляю файл в Вложения, в котором указывается путь файла + имя_файла. Я удивлен, что не могу получить то же самое от уже прикрепленных файлов. – pixel
Нет, информация о пути никогда не сохраняется даже в том случае, если она не является привязкой к ссылке. На уровне MAPI файлы даже не вступают в игру - данные поступают как IStream в свойство PR_ATTACH_DATA_BIN. –
Спасибо миллиону Дмитрию – pixel