Локальный каталог ReadAllLines () не работает - PullRequest
0 голосов
/ 18 мая 2018

По какой-то причине ReadAllLines () выглядит не в той папке.

string[] LoadLines = File.ReadAllLines(@"Assets\\UserFile.txt");

«Assets \ UserFile.txt» находится там, где находится исполняемый файл.Отладчик генерирует исключение System.IO.DirectoryNotFoundException с комментарием:

"Не удалось найти часть пути C: \ WINDOWS \ SysWOW64 \ Assets \ UserFile.txt"

Почему он проверяет не в той папке?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Относительные имена путей разрешаются относительно рабочего каталога процесса, не относительно исполняемого файла.Итак, предположительно, у вашего процесса есть рабочий каталог c:\Windows\SysWOW64.

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

0 голосов
/ 18 мая 2018

Попробуйте это ...

string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Assets\UserFile.txt");
string[] lines= File.ReadAllLines(path);

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

Если папка выполненияв папке bin, убедитесь, что для свойства файла в Visual Studio установлено значение «Содержимое» и «Всегда копировать» или «Копировать, когда новее».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...