Доступ к пути запрещен ошибка в C # - PullRequest
43 голосов
/ 10 октября 2011

Я прочитал аналогичный пост, но я просто не могу понять проблему.

Я изменил разрешения Windows и изменил маршруты.

Когда я пытаюсь сохранить файл, он выбрасываетмне исключение:

Доступ к пути **** запрещен.

string route="D:\\";
FileStream fs = new FileStream(route, FileMode.Create); <--here is the problem
        StreamWriter write = new StreamWriter(fs);
        patient person = new patient();
        patient.name = textBox1.Text;
        patient.name2 = textBox2.Text;

Ответы [ 5 ]

113 голосов
/ 10 октября 2011

Вы пытаетесь создать объект FileStream для каталога (папки). Укажите имя файла (например, @ "D: \ test.txt"), и ошибка исчезнет.

Кстати, я бы посоветовал вам использовать конструктор StreamWriter, который принимает кодировку в качестве второго параметра, потому что в противном случае вы можете получить неприятный сюрприз при попытке прочитать сохраненный файл позже (используя StreamReader). *

12 голосов
/ 10 октября 2011

Вы пытались указать какое-нибудь имя файла?

например:

string route="D:\\somefilename.txt";
5 голосов
/ 02 мая 2014

tl; dr version: убедитесь, что вы не пытаетесь открыть файл, помеченный в файловой системе как доступный только для чтения в режиме чтения / записи.

Я сталкивался с этой ошибкой в ​​своих путешествиях, пытаясь прочитать в XML-файл. Я обнаружил, что в некоторых случаях (подробно описано ниже) эта ошибка будет генерироваться для файла, даже если путь и имя файла указаны правильно.

Сведения о файле:

  • Путь и имя файла верны, файл существует
  • И учетная запись службы, и вошедший в систему пользователь имеют права полного доступа к файлу и полный путь
  • Файл помечен как доступный только для чтения
  • Он работает на Windows Server 2008 R2
  • В пути к файлу использовались буквы локального диска, а не UNC-путь

При попытке прочитать файл программным способом при выполнении точно такого же кода наблюдалось следующее поведение:

  • При запуске в качестве зарегистрированного пользователя файл читается без ошибок
  • При запуске в качестве учетной записи службы при попытке чтения файла выдается ошибка «Доступ запрещен» без подробностей

Чтобы это исправить, мне пришлось изменить вызов метода со значения по умолчанию (открытие как RW) на открытие файла как RO. Как только я сделал это одно изменение, оно перестало выдавать ошибку.

1 голос
/ 15 февраля 2019

Если ваша проблема сохраняется со всеми этими ответами, попробуйте изменить атрибут файла на:

File.SetAttributes(yourfile, FileAttributes.Normal);
1 голос
/ 04 июня 2013

У вас нет прав для доступа к файлу.Убедитесь, что у вас есть доступ к файлу на этом диске.

string route= @"E:\Sample.text";
FileStream fs = new FileStream(route, FileMode.Create);

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

...