Package.Open()异常:拒绝访问路径

时间:2011-05-19 01:17:21

标签: c#

我一直试图解决这个问题一整天,但无论我做什么,我都会继续得到同样的异常: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))
                        {
                        }
                    }

                    );
}

我真的不知道问题所在,请帮助我。

1 个答案:

答案 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, ...