Я получаю System.UnauthorizedAccessException каждый раз. Запускаю как администратор. Но по-прежнему выдает ошибку ... Код:

XmlDocument doc = new XmlDocument();
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Test\\" + textBox1.Text;
doc.Load(path); //Getting error

Спасибо.

System.UnauthorizedAccessException: отказано в доступе к пути C: \ Users \ x \ Documents \ Test \ Hello.

0
viktor.488 22 Сен 2018 в 11:07

1 ответ

Лучший ответ

Во-первых

Используйте Path.Combine (String, String)

Объединяет две струны в путь.

Пример

var myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

var dir = Path.Combine(myDocs,"Test");
var fileName =Path.Combine(dir, textBox1.Text); 

Debug.WriteLine(fileName);

doc.Load(fileName)

Во-вторых

Посмотрите документацию

XmlDocument.Load Метод

UnauthorizedAccessException имя_файла указывает файл, который только для чтения.

Дважды проверьте свой path, он не похож на имя файла. Если это файл без расширения (и он существует), убедитесь, что он не доступен только для чтения.

System.UnauthorizedAccessException: доступ запрещен к пути

' C: \ Users \ x \ Documents \ Test \ Hello '.

Если вы исправите это, вы, вероятно, выиграете

2
TheGeneral 22 Сен 2018 в 08:25