2013-11-24 6 views
1

Когда я выполнить этот код в моем приложении # консольного C, он бросает "Access to the path "somepath" is denied" на using линии.Доступ к пути «somepath» отказано.»

Это мой код.

static public PdfDocument Open(string PdfPath) 
{ 
    using (var fileStream = new FileStream(PdfPath, FileMode.Open, FileAccess.Read)) 
    { 
     int len = (int)fileStream.Length; 
     Byte[] fileArray = new Byte[len]; 
     fileStream.Read(fileArray, 0, len); 
     return Open(fileArray); 
    } 
} 

Что такое идет не так. Любая мысль? Кстати, я вошедшего в качестве системного администратора, и у меня есть полный контроль в данной папке.

+1

Действительно ли 'PdfPath' содержит имя файла? Примечание: рассмотрите [File.ReadAllBytes] (http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes (v = vs.110) .aspx) вместо того, чтобы писать свои собственные. –

+0

@Alexei Levenkov: Да PdfPath содержит .pdf-файл. – user1133737

+0

Ваш комментарий здесь не соответствует комментарию ответа Дэна. Если вам нужны разумные ответы, вам необходимо предоставить код, который показывает проблему. Пока вы показали ручную реализацию «File.ReadAllBytes», но не отображали точное сообщение об ошибке и значение ввода, которое вызывает ошибку. –

ответ

0

Возможно, файл открыт другим процессом в монопольном режиме записи.

+0

в моем коде я не читаю файл исключительно, я читаю папку, чтобы он также читал содержимое папки. – user1133737

+1

@ user1133737 - вы пытаетесь прочитать папку (например, @ "c: \") в качестве файла ??? –

+0

@Alexei Levenkov - строка path = @ "D: \ temp"; – user1133737

Смежные вопросы