. Так как в проектах на языках программирования .NET не используются файлы описания ресурсов, ресурсы необходимо открывать из обозревателя решений. Используйте редактор изображений и двоичный редактор для работы с файлами ресурсов в управляемых проектах.
Все управляемые ресурсы, которые нужно редактировать, должны быть связанными ресурсами. Редакторы ресурсов Visual Studio не поддерживают редактирование внедренных ресурсов.
Термин resource file может относиться к любому из нескольких типов файлов, например:
- Файл скрипта ресурса ( .rc ) программы.
- Файл шаблона ресурса ( .rct ).
- Отдельный ресурс, существующий как автономный файл. Этот тип включает точечный рисунок, значок или файл курсора, на который ссылается .rc файл.
- Файл заголовка, созданный средой разработки. К этому типу относится Resource.h , на который ссылается файл .rc .
Другие типы файлов, такие как .exe файлы , .dll и .res , также могут содержать доступные ресурсы, хотя первые два файла обычно не считаются файлами ресурсов.
КАК ОТКРЫТЬ ФАЙЛЫ И ПРОГРАММЫ
Вы можете работать с файлами ресурсов и ресурсами из проекта. Вы также можете работать с ресурсами и файлами ресурсов, которые не являются частью текущего проекта или были созданы вне среды разработки Visual Studio. Например, вы можете:
- Работать с вложенными и условно включенными файлами ресурсов.
- Обновите существующие ресурсы или преобразуйте их в Visual C++.
- Импортировать графические ресурсы в текущий файл ресурсов или экспортировать их из него.
- Включать общие или доступные только для чтения идентификаторы (символы), которые нельзя изменить с помощью среды разработки.
- Включите ресурсы в исполняемый файл ( .exe или .dll ), которые не нуждаются в редактировании (или не должны изменяться), например общие ресурсы нескольких проектов.
- Включать типы ресурсов, не поддерживаемые средой разработки.
Редактируемые ресурсы
Для изменения содержащихся в них ресурсов можно открыть следующие типы файлов:
.rc | Файлы скриптов ресурсов |
.rct | Файлы шаблонов ресурсов |
.res | Файлы ресурсов |
.resx | Файлы управляемых ресурсов |
.exe | Исполняемые файлы |
.dll | Файлы библиотек динамической компоновки |
.bmp , .ico , .dib , .cur | Файлы растрового рисунка, значка, панели инструментов и курсора |
Среда Visual Studio работает со следующими файлами и влияет на следующие файлы при редактировании ресурсов:
Редакторы ресурсов не считывают .rc файлы или файлы resource.h напрямую. Компилятор ресурсов компилирует их в .aps файлы, используемые редакторами ресурсов. Этот файл представляет собой этап компиляции и содержит только символьные данные.
Как и в случае с обычным процессом компиляции, информация, которая не является символьной, например комментарии, удаляется в процессе компиляции.
Как открывать файлы в нужной программе.
Всякий раз, .aps когда файл не синхронизирован с файлом .rc , .rc он создается повторно. Например, при сохранении редактор ресурсов перезаписывает .rc файл и resource.h файл . Все изменения в самих ресурсах остаются включенными в .rc файл, но примечания .rc всегда теряются после перезаписи файла. Сведения о сохранении примечаний см. в разделе Включение ресурсов во время компиляции.
Ресурсы манифеста
В классических проектах C++ ресурсы манифеста представляют собой XML-файлы, описывающие зависимости, используемые приложением. Например, в Visual Studio этот файл манифеста, созданный мастером MFC, определяет, какую версию библиотек DLL общих элементов управления Windows должно использовать приложение:
Your app description here
Для приложений Windows XP или Windows Vista ресурс манифеста должен указывать самую последнюю версию общих элементов управления Windows для использования приложением. В приведенном выше примере используется версия 6.0.0.0 , которая поддерживает Syslink элемент управления .
Допускается иметь только один ресурс манифеста на каждый модуль.
Чтобы просмотреть сведения о версии и типе, содержащиеся в ресурсе манифеста, откройте файл в средстве просмотра XML или текстовом редакторе Visual Studio. Если вы откроете ресурс манифеста из представления ресурсов, этот ресурс откроется в двоичном формате.
Открытие ресурса манифеста
- Откройте проект в Visual Studio и перейдите к Обозреватель решений.
- Разверните папку Файлы ресурсов , а затем:
- Чтобы открыть файл в текстовом редакторе .manifest , дважды щелкните файл.
- Чтобы открыть файл в другом редакторе, щелкните файл правой .manifest кнопкой мыши и выберите Открыть с помощью. Укажите редактор для использования и нажмите кнопку Открыть.
Источник: learn.microsoft.com
Как открыть ресурсы программы
Большинство приложений WPF так или иначе используют различные бинарные ресурсы — файлы изображений, мультимедиа и т.д. Для добавления ресурсов достаточно добавить уже существующий файл в проект. Нередко для оптимизации структуры проекта для хранения ресурсов создаются отдельные папки в проекте.
При добавлении ресурсов в проект мы можем установить одну из двух опций компиляции в окне свойств в поле Build Action :
- Resources : ресурс встраивается в сборку (значение по умолчанию)
- Content : ресурс физически находится отдельно от сборки, однако сборка содержит информацию о его местоположении
Доступ к ресурсам
Для доступа к ресурсам в WPF можно использовать объект Uri . Например, в проекте в папке Images помещен ресурс — файл river.jpg. И чтобы обратиться к нему из элемента Image мы можем использовать относительный путь Images/river.jpg:
Для доступа к ресурсу здесь применяется относительный путь с указанием папки и названия файла. Однако в реальности все используемые в xaml пути трансформируются в объекты Uri. Так, если бы нам пришлось устанавливать изображение в коде c#, то нам пришлось бы написать что-то вроде следующего:
myImage.Source = new BitmapImage(new Uri(«Images/river.jpg», UriKind.Relative));
Конструктор Uri принимает два параметра: собственно относительный путь и значение из перечисления UriKind, которое указывает, что путь стоит расценивать как относительный.
Кроме относительных путей мы также можем использовать абсолютные:
myImage.Source = new BitmapImage(new Uri(D://forest.jpg, UriKind.Absolute));
Кроме относительных и абсолютных путей в WPF можно использовать определения «упакованных» URI (packageURI). Фактически относительные пути являются сокращениями упакованных Uri. Так путь «Images/river.jpg» является сокращением пути «pack://application. /images/river.jpg»:
myImage.Source = new BitmapImage(new Uri(«pack://application. /images/river.jpg»));
Синтаксис упакованных URI заимствован из спецификации стандарта XML Paper Specification (XPS). Для ресурсов, встроенных в сборку приложения, он имеет следующую форму:
pack://application. /[относительный _путь_к_ресурсу]
Три запятых здесь фактически передают три слеша. То есть по факту начало пути выглядит так: application:///
Если же наши ресурсы находятся вне приложения, например, это некий файл по пути D://forest.jpg, тогда вместо application использется название логического диска:
myImage.Source = new BitmapImage(new Uri(«pack://D. forest.jpg»));
Ресурсы в других сборках
Может сложиться ситуация, когда наше приложение использует внешнюю сборку, в которой были упакованы ресурсы. И мы также можем обратиться к этим ресурсам, используя синтаксис «упакованных» Uri. В этом случае путь будет иметь следующий формат:
pack://application. /[название_библиотеки];component/[путь_к_ресурсу]
Допустим, файл сборки называется libs.dll, а ресурс, а сам ресурс в ней находится по пути images/forest.jpg, тогда получить его мы сможем следующим образом:
myImage.Source = new BitmapImage(new Uri(«pack://application. /libs;component/images/river.jpg»));
Либо можно использовать эквивалентный способ доступа к ресурсу:
myImage.Source = new BitmapImage(new Uri(«libs;component/images/river.jpg», UriKind.Relative));
Получение ресурсов
Используя выше рассмотренные пути можно в программе получать сам файл ресурса и производить с ним манипуляции. Для получения ресурса приложения применяется метод Application.GetResourceStream() , например:
System.Windows.Resources.StreamResourceInfo res = Application.GetResourceStream(new Uri(«images/river.jpg», UriKind.Relative)); res.Stream.CopyTo(new System.IO.FileStream(«D://newRiver.jpg», System.IO.FileMode.OpenOrCreate));
В данном случае мы считываем ресурс приложения и выполняем его копирование по новому пути вне приложения.
Источник: metanit.com
Как открыть файл из ресурсов программы? [дубликат]
Как из программы открыть этот файл test.txt ? Например, при обработке нажатия на кнопку.
Отслеживать
задан 14 дек 2018 в 8:44
Андрей Лёвушкин Андрей Лёвушкин
53 7 7 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Поменяйте свойство файла
Потом можно так :
var assembly = Assembly.GetExecutingAssembly(); var resourceName = assembly.GetName().Name + «.Resources.test.txt»; using (Stream stream = assembly.GetManifestResourceStream(resourceName)) using (StreamReader reader = new StreamReader(stream)) < string result = reader.ReadToEnd(); Console.Write(result); >Console.ReadLine();
Ноб есть еще вариант поменяйте свойства Copy to Output Directory на Copy always (не знаю как будет по-русски)
Потом можно просто
StreamReader streamReader = new StreamReader(«Resources\test.txt»);
Источник: ru.stackoverflow.com