Сценарий: я написал приложение, чтобы открыть список MSG-файлов (которые были выгружены в файловую систему), получить некоторую информацию из них (предмет, в CC) и затем переместить их.
Проблема: Однако, когда дело доходит до перемещения файла, я получаю следующую ошибку:
Процесс не может получить доступ к файлу, потому что он используется
другой процесс.
Запуск дескриптора для файла показывает только инструмент, который я написал, и никаких других дескрипторов.
Поэтому я предполагаю, что я не выпускаю файлы должным образом, когда закончу использовать их в качестве объектов Redemption MessageItem.
Но я не могу обернуть их в оператор использования, потому что они не реализуют IDisposable. И они не предоставляют никаких открытых методов Close или Dispose или методов с аналогичными именами.
Короче, я пытаюсь спросить:
a) Как заставить мое приложение c # закрыть данный дескриптор, зная только путь к дескриптору файла?
или
б) Есть ли способ заставить объекты Искупления закрыться?
var util = new MAPIUtilsClass();
MessageItem item = util.GetItemFromMsgFile(EmailPath, false);
item.Import(EmailPath, 3);
Subject = item.Subject;
From = (item.SenderName.Length < 96) ? item.SenderName : item.SenderName.Substring(0, 93) + "...";
To = (String.IsNullOrEmpty(item.To)) ? String.Empty : (item.To.Length < 96) ? item.To : item.To.Substring(0, 93) + "...";
CC = (String.IsNullOrEmpty(item.CC)) ? String.Empty : (item.CC.Length < 96) ? item.CC : item.CC.Substring(0, 93) + "...";
Sent = item.SentOn;
Received = item.ReceivedTime;
Log.Write("Redemption: Email data harvested" + EmailPath);