Доступ к ошибке путь запрещен в C#
Я прочитал аналогичный пост, но я просто не могу понять проблему.
Я изменил разрешения 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;
4 ответов
вы пытаетесь создать объект FileStream для каталога (папки). Укажите имя файла (например, @"D:\test.txt"), и ошибка исчезнет.
кстати, я бы предложил вам использовать конструктор StreamWriter, который принимает кодировку в качестве второго параметра, потому что в противном случае вы можете столкнуться с неприятным сюрпризом при попытке прочитать сохраненный файл позже (используя StreamReader).
TL;dr версия: убедитесь, что вы не пытаетесь открыть файл, помеченный в файловой системе как только для чтения в режиме чтения/записи.
Я столкнулся с этой ошибкой в моих путешествиях, пытаясь прочитать в XML-файле. Я обнаружил, что в некоторых случаях (описано ниже) эта ошибка будет сгенерирована для файла, хотя путь и имя файла указаны правильно.
сведения о файле:
- путь и имя файла правильны, существует файл
- как учетная запись службы и вошедший в систему пользователь имеет разрешения на полный доступ к файлу и полный путь
- файл помечен как доступный только для чтения
- он работает на Windows Server 2008 R2
- путь к файлу использовал буквы локального диска, а не UNC path
при попытке программного чтения файла при выполнении того же кода наблюдалось следующее поведение:
- при запуске в качестве зарегистрированного пользователя, файл читается без ошибок
- при запуске в качестве учетной записи службы, пытаясь прочитать файл генерирует доступ отказано ошибка без каких-либо деталей
чтобы исправить это, мне пришлось изменить вызов метода по умолчанию (открытие как RW) на открытие файла как RO. Как только я сделал это одно изменение, он перестал бросать ошибку.
у вас нет прав доступа к файлу. Пожалуйста, убедитесь, что вы можете получить доступ к файлу на этом диске.
string route= @"E:\Sample.text";
FileStream fs = new FileStream(route, FileMode.Create);
вы должны указать имя файла для создания. Пожалуйста, попробуйте это, теперь вы можете создавать.