在outlook中,我在收件箱等文件夹中有各种DocumentItems,我试图在拖放事件中将这些文件保存到文件系统。
以下是代码:
for (var i = 1; i <= _application.ActiveExplorer().Selection.Count; i++)
{
var temp = _application.ActiveExplorer().Selection[i];
var documentItem = (temp as DocumentItem);
if (documentItem == null)
continue;
var tempFileName = Path.GetTempPath() + documentItem.Subject;
documentItem.SaveAs(tempFileName);
}
但是当我尝试打开其中任何一个时,他们都说他们无法打开,所以他们在某种程度上被腐蚀了,有没有人有任何想法?
答案 0 :(得分:2)
您在不指定格式的情况下调用SaveAs,Outlook对象模型将其默认为olMsg。您最终获得了带有JPG扩展名的MSG文件。
您需要做的是遍历DocumentItem.Attachments集合中的所有附件并调用Attachment.SaveAsFile。您可能还想使用Attachmeent.FileName属性。
只是一般性评论 - 多点符号是邪恶的,尤其是在厕所中:
Selection selection = _application.ActiveExplorer().Selection;
for (var i = 1; i <= selection.Count; i++)
{
var temp = selection[i];
var documentItem = (temp as DocumentItem);
...