我一直试图解决这个问题一整天,但无论我做什么,我都会继续得到同样的异常:UnauthorizedAccessException未在线处理 using(Package package = Package.Open(d.FullName,FileMode.Create,FileAccess.ReadWrite))
完整的代码是:
NTAccount act = new NTAccount("c9lu-PC","c9lu");
DirectoryInfo d = System.IO.Directory.CreateDirectory(path);
DirectorySecurity security = d.GetAccessControl();
security.AddAccessRule(new FileSystemAccessRule(act,FileSystemRights.FullControl,InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
d.SetAccessControl(security);
using (Package package = Package.Open(d.FullName, FileMode.Create, FileAccess.ReadWrite)) // where the exception occurs
{
PackageHelper.createPart(package, "/pages.zip" , MediaTypeNames.Application.Zip,
(stream) =>
{
using (var parts = ZipPackage.Open(stream, FileMode.Create))
{
}
}
);
}
我真的不知道问题所在,请帮助我。
答案 0 :(得分:3)
是否与您将目录传入Package.Open的第一个参数而不是文件名这一事实有关?应该更像这样:
// This gives you a directory object. It's all a directory/folder. No File.
DirectoryInfo d = System.IO.Directory.CreateDirectory(path);
// So use the Combine method to create a full path to a file
string fileName = System.IO.Path.Combine(d.FullName, "pages.zip");
...
// Then use that full path to create the Package.
Package.Open(fileName, ...