我在为Outlook编写的VSTO加载项中包含以下代码:
savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]", String.Empty);
savepathfull = string.Format(@"{0}{1}", netloc, savefolder);
DirectoryInfo di = new DirectoryInfo(@savepathfull);
if (!(di.Exists))
Directory.CreateDirectory(@savepathfull);
removedFiles = new List<string>();
for (int d = attachs.Count; d > 0; d--)
{
if (attachs[d].Size > smallAttachment)
{
removedFiles.Add(attachs[d].FileName);
attachs[d].SaveAsFile(savepathfull);
}
}
一切正常,直到我尝试保存附件为止,此时我收到UnauthorizedAccessException。我知道我的测试用户对该文件夹拥有完全权限,但是我仍然收到此错误。
有想法吗?
谢谢。
最佳答案
调用Attachment.SaveAsFile
时,您需要提供有效的文件名。您正在尝试保存到目录,而不是文件。有关reference code的信息,请参见MSDN。
attachs[d].SaveAsFile(Path.Combine(savepathfull, attachs[d].DisplayName);