System.UnauthorizedAccessException Доступ к пути запрещен
При попытке написать PDF документ со следующим кодом:
document = new Document();
PdfWriter writer = null; ;
try
{
writer = PdfWriter.GetInstance(document, new FileStream(@"E:\mergFiles", FileMode.Create));
}
catch (Exception xc)
{ }
Я получаю исключение:
{System.UnauthorizedAccessException: Access to the path 'E:\mergFiles' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)
at PDFLibrary.PDFManager.MergeDocs()}
У меня есть все права доступа к этой папке.
поглядел и обнаружил, что это может помочь File.SetAttributes(@"E:\mergFiles", FileAttributes.Normal);
но все же я получаю то же исключение.
1 ответ
Решение
Ну, вы не можете передать имя папки FileStream
, Это должно быть имя файла, включая путь (редактировать: конечно, он не обязательно должен включать путь, если вы используете относительное имя файла).
Если вы хотите создать папку, используйте Directory.CreateDirectory
, Чтобы создать файл в этой папке, используйте что-то вроде этого:
string fullName = Path.Combine(pathName, fileName);
writer = PdfWriter.GetInstance(document, new FileStream(fullName, FileMode.Create));