Как открыть файл из ресурсов c

от admin

Как читать встроенный ресурсный текстовый файл

Как прочитать встроенный ресурс (текстовый файл) с помощью StreamReader и вернуть его как строку? В моем текущем script используется форма и текстовое поле Windows, которое позволяет пользователю находить и заменять текст в текстовом файле, который не встроен.

15 ответов

Добавьте следующие данные

Установить свойство соответствующего файла:
Параметр Build Action со значением Embedded Resource

Используйте следующий код

resourceName — это имя одного из ресурсов, встроенных в assembly . Например, если вы вставляете текстовый файл с именем «MyFile.txt» , который помещается в корень проекта с пространством имен по умолчанию «MyCompany.MyProduct» , то resourceName есть «MyCompany.MyProduct.MyFile.txt» . Вы можете получить список всех ресурсов в сборке, используя метод Assembly.GetManifestResourceNames .

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

Код С#, необходимый для доступа к файлу, отличается, в зависимости от метода, используемого для добавления файла в первую очередь.

Способ 1. Добавьте существующий файл, установите свойство Embedded Resource

Добавьте файл в свой проект, затем установите тип Embedded Resource .

Читать:
Сколько единиц в двоичной записи десятичного числа

ПРИМЕЧАНИЕ. Если вы добавите файл с помощью этого метода, вы можете использовать GetManifestResourceStream для доступа к нему (см. ответ от @dtb).

Как прочитать байты файла из ресурсов (C#)?

Я компилирую софт через CodeDomCompiler, и добавляю файл в ресурсы этого софта. Но я не знаю как прочитать этот ресурсный файл. Я пытался вот так:
byte[] fat = Properties.Resources.NameProg;
Но ничего не получалось. Было написано, что Properties не найдено.

P. S. файл в ресурсах — exeшник

Помогите пожалуйста, пробовал все методы :((

  • Вопрос задан более года назад
  • 240 просмотров

Средний 7 комментариев

  • Facebook
  • Вконтакте
  • Twitter

vabka

vabka

vabka

BasiC2k

Сохранить бинарник из ресурсов на диск:
File.WriteAllBytes(@»C:\NameProg.exe», ProjectName.Properties.Resources.NameProg);

или так:
File.WriteAllBytes(@»C:\NameProg.exe», Resources.NameProg);

если наверху есть:
using ProjectName.Properties;

где:
ProjectName — название Вашего проекта;

Имейте в виду, что:
— в проекте может быть несколько файлов ресурсов. В примере выше данные берутся из «Resources»;
— для записи в некоторые папки нужно запускать программу с правами администратора;
— могут срабатывать антивирусы и удалять свежесозданный exe.

Related Posts