2
我一直在努力解決這個問題了整整一天,但無論我做什麼,我不斷獲取相同的異常:UnauthorizedAccessException是使用在線路 未處理(包包= Package.Open(d.FullName,FileMode.Create,FileAccess.ReadWrite))Package.Open()異常:訪問路徑被拒絕
完整的代碼是:
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))
{
}
}
);
}
我真的不知道是什麼問題,請幫助我。
喜添 我其實通過目錄的全名。我想要做的是在該目錄內創建包,那麼如何指定包的路徑? – Chen 2011-05-19 01:33:56
正確的,你傳遞的是目錄的全名,但不是文件名。你需要給它一個文件名(目錄和文件名)。我認爲你出於某種原因將該部分移到了createPart調用中。 – Tim 2011-05-19 01:35:09
如果我只使用d.Name而不是d.FullName,那麼異常會消失,但運行程序後沒有在文件夾內創建的包。 – Chen 2011-05-19 01:40:15