通过在Outlook消息存储消息(的getItem对象)循环,并使用下面的代码保存附件作为文件:PDF Outlook电子邮件附件有时保存没有权限
try
{
foreach (Outlook.Attachment attach in getItem.Attachments)
{
if (attach.FileName == sItemName)
{
string sSaveFile = Path.GetTempPath() + "Attachment" + sItemType;
if (System.IO.File.Exists(sSaveFile)) System.IO.File.Delete(sSaveFile);
attach.SaveAsFile(sSaveFile);
sContent = Common.GetFileContent2(sSaveFile);
}
}
}
catch (Exception Ex)
{
Common.LogError("GetUpdated", Ex, "Get text from Email attachment", "Error", false);
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(getItem.Attachments);
我发现,所提取的PDF文件有时当另一个PDF文件出现时无法进行删除。提取的PDF文件的文件权限无法在资源管理器中查看 - 属性的“安全性”选项卡显示“您必须具有读取权限才能查看此对象的属性”。常规属性选项卡可以读取OK。
我使用Outlook 2007在Windows 8.1
代码中使用了什么文件路径?你是否以管理员权限运行Outlook? –
保存文件夹的路径是用户Temp目录,它是C:\ User \ AppData \ Local \ Temp。我曾尝试重新安装Office,但没有成功,正如其他人遇到类似问题所建议的那样。 Outlook不具有任何特权。它被调用 'Outlook.Application myApp = new Outlook.Application(); Outlook.NameSpace mapiNameSpace = myApp.GetNamespace(“MAPI”);'。删除文件失败的情况下没有可识别的模式,只发生在PDF上。大约90秒后,无许可证的PDFS消失 – SimonKravis
我在代码中看不到什么奇怪的东西。尝试在另一台PC上运行它。你有相同的结果吗?你有问题的电脑上有任何防病毒软件? –