gpt4 book ai didi

c# - DocumentItem.SaveAs 导致文件损坏

转载 作者:行者123 更新时间:2023-11-30 23:29:14 30 4
gpt4 key购买 nike

在 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);
}

它们似乎保存成功并具有文件大小: enter image description here

但是当我尝试打开它们中的任何一个时,它们都说它们无法打开,所以它们以某种方式被破坏了,有没有人有任何想法?

enter image description here

最佳答案

您在调用 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);
...

关于c# - DocumentItem.SaveAs 导致文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35599752/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com