C# получить относительный путь к папке ресурсов - PullRequest
0 голосов
/ 10 июля 2020

Я хочу получить доступ к файлу .txt, который я сохранил в папке ресурсов моего проекта, где также хранятся все импортированные изображения. Я хочу использовать что-то вроде относительного пути, так как каждый пользователь сохранил бы свою программу где-нибудь еще на своем P c, но всегда есть папка ресурсов в том же месте, по сравнению с папкой программы.

Я пытался использовать это: displayText = System.IO.File.ReadAllText("Resources\\startmessages.txt");, но это не работает. Я получаю это сообщение об ошибке: System.IO.DirectoryNotFoundException: , в нем также указан нерелевантный путь к .txt, поэтому я не понимаю, почему он не может его прочитать.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Текущий путь к исполняемому файлу

Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).FullName

Путь к решению

Если вы используете Visual Studio и вам нужен доступ к папки в каталоге решения, вы можете использовать метод .Parent,

Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName

Использование Path.Combine

и как только у вас будет местоположение папки ресурсов используйте Path.Combine, чтобы получить местоположение для чтения файлов / содержимого и т. д. c

Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Resources\\startMessages.txt")
0 голосов
/ 10 июля 2020

@ChetanRanpariya пытается вам сказать, что ваша программа построена в другой папке, чем ваша папка Resources. Таким образом, вы явно указали своему файлу Resources\startmessages.txt копировать себя в процессе сборки, чтобы он был скопирован в указанную другую папку. Предполагая, что вы используете Visual Studio, вам нужно щелкнуть файл правой кнопкой мыши и установить Copy To Output Directory на true. Его относительный путь к папке (Resources\) будет сохранен. Вы найдете свою папку сборки где-нибудь в папке bin в зависимости от конфигурации и фреймворка. :)

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