У меня встроен sample.txt
(он содержит только одну строку «aaaa») в ресурсы проекта, как в этом answer. Когда я пытаюсь прочитать это так:Чтение файла из ресурсов
string s = File.ReadAllText(global::ConsoleApplication.Properties.Resources.sample);
Я получаю System.IO.FileNotFoundException»исключение. Дополнительная информация: Не удалось найти файл 'd: \ Work \ Projects \ MyTests \ ConsoleApplication \ ConsoleApplication \ bin \ Debug \ aaaa'.
Так что, похоже, он пытается взять имя файла из моего файла ресурсов вместо чтения этого файла. Почему это происходит? И как я могу сделать это прочитать sample.txt
Попытка решения @Ryios и получение Аргумент исключения нулевого
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ConsoleApplication.Resources.sample.txt"))
{
TextReader tr = new StreamReader(stream);
string fileContents = tr.ReadToEnd();
}
Файл находится в D: \ Work \ Projects \ MyTests \ ConsoleApplication \ ConsoleApplication \ Resources \ sample.txt
ps Решаемые. Мне пришлось установить Build Action - вставить ресурс в свойства sample.txt.
Можете ли вы показать нам строку, сохраненную в параметре образца? Кажется, у него есть некоторые недопустимые символы для пути к файлу. – ManoDestra
Что произойдет, если вы отбросите глобальную :: часть от этого – BugFinder
Если вы не заблокированы в использовании файла ресурсов, вы можете захотеть вставить этот файл, как в http://stackoverflow.com/questions/3314140/how-toreadread -embedded-resource-text-file? rq = 1. Это проще в обслуживании. –