Как создать папку с текстовыми файлами в проекте и пользоваться ими?

370
09 декабря 2016, 08:58

Хочу добавить в проект несколько csv файлов и пользоваться ими, как текстовыми ресурсами. Ну и чтобы лежали вместе в папке для порядка. Создать папку проблем нет.

контекстное меню проекта ➙ Добавить ➙ Создать папку

Файлы тоже создаются

контекстное меню папки ➙ Добавить ➙ Создать элемент ➙ элементы Visual C# ➙ Текстовый файл

Но как пользоваться их содержимым?

Answer 1

http://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file

После добавления ресурса необходимо задать в дизайнере свойство Действия при сборке значением Внедренный ресурс (именование в русифицированной Visual Studio, в англоязычной будут Build Action и Embedded Resource). Для извлечения текстового файла понадобится использовать метод GetManifestResourceStream() класса Assembly, экземпляр которого соответствующий исполняемый сборке можно получить статическим методом Assembly.GetExecutingAssembly(). Не забудьте также что для использования Assembly нужно вписать using System.Reflection в заголовок модуля или обращаться к нему System.Reflection.Assembly.

GetManifestResourceStream() вернет Stream. Зная, что мы имеем дело с текстом, либо считываем System.IO.StreamReader весь файл в экземпляр string.

using System.Reflection;
using System.IO;
...
public static string GetTextResource(string namespace, string folder, string filename)
{
    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(
                                string.Format("{0}.{1}.{2}, namespace, folder, filename)))
    {
        using (StreamReader sr = new StreamReader(stream))
        {
            return sr.ReadToEnd();
        }                 
    }            
}

Либо организуем другую логику считывания файла.

Answer 2

Используйте механизм ресурсов.
Зайдите в свойства проекта, вкладка "Ресурсы", добавьте новый файл ресурсов (если его ещё нет), добавьте новый или существующий текстовый файл.
После этого можно обращаться к этому файлу как к Properties.Resources.<Имя файла>.
Т.е. если Вы добавили файл main.csv, то можно будет обратиться к его содержимому как к Properties.Resources.main. Это будет read-only строка с содержимым файла.

READ ALSO
C# selenuim phantomJS error: can&#39;t find JQuery

C# selenuim phantomJS error: can't find JQuery

ПриветствуюРешил поработать с selenium в C# посредством веб-драйвера phantomJS, но при запуске phantomjs

276
Работа с combobox

Работа с combobox

Доброго времени сутокВозникла следующая проблема, есть XML файл, у меня получается его считать и записать данные в ComboBox, хотелось что бы при...

618