Форум программистов, компьютерный форум, киберфорум
Visual Studio, VS Code
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3
VS 2013

Как задать путь открытия файла из папки \Resources после опубликования приложения?

15.01.2015, 13:53. Показов 6174. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане. При создании приложения (используется VS2013) в Обозреватель решений я создаю папку Resources и вкладываю туда несколько файлов pdf с именами 1(1).pdf, 1(2).pdf..., 1(...).pdf.
При определенном событии должен открываться файл с i именем с помощью Process.Start(CurDir() & "\Resources\(1)(" & i & ").pdf"). Функция CurDir() определяет путь . exe файла самого приложения. Здесь все понятно. Но как переопределить путь, когда приложение опубликовано? В папке установки нет папки с этими файлами (они наверное в . exe файле). Как правильно задать Process.Start(CurDir() & "\Resources\(1)(" & i & ").pdf") или данный подход в корне не верный? Тогда как решить эту задачу? Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2015, 13:53
Ответы с готовыми решениями:

Задать путь для открытия файла в директории приложения
Здравствуйте, неполучается открыть файл на прямую, пытаюсь открыть так: Private Sub Command4_Click() Dim a As Object message =...

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

4
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
15.01.2015, 16:09
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C#
1
<namespace>.Properties.Resources.<filename>
Там он хранится скорее всего в виде массива байт, поэтому придётся этот массив байт записывать в физический файл, и уже его открывать пользователю
1
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3
16.01.2015, 06:35  [ТС]
Спасибо за ответ, буду разбираться, но я начинающий кодер и, если вас не затруднит был бы рад более подробной инфе (пишу на VB). Еще раз спасибо.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.01.2015, 09:16
RaulFox, я не очень поддерживаю такой подход. Считаю, что в ресурсы следует помещать нечто, что используется в теле самой программы. Сторонние файлы я просто прикрепляю к проекту в виде контента и указываю, что нужно копировать в выходную директорию
Изображения
 
1
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3
19.01.2015, 08:16  [ТС]
nio спасибо за ответы. Задача выполнена, но думаю не совсем верно, как Вы и заметили, что не поддерживаете данного подхода. Использовал Ваш первый ответ. Вдруг кому то пригодится:
1 что хочется сказать, что в ресурсы не правильно добавлял файлы (простым перетаскиванием). Добавлял файлы через свойство проекта, добавлял ресурс и туда закачивал файлы. Имя ресурса в итоге немного стало отличаться от имени файлов, пришлось менять немного код. Да, файлы заливал из папки созданной в проекте, т. е. сначала залил их туда и только потом путь для ресурсов указывал эту папку. Собственно код (видоизменен):
Dim Path As String
Path = "C:\Documents and Settings\All Users\Documents\PDF001\00001.pdf"
'проверяем существует ли путь и файл (после предыдущего запуска)
If IO.File.Exists("Path") Then
Else
' если нет то создаем папку
My.Computer.FileSystem.CreateDirectory(" C:\Documents and Settings\All Users\Documents\PDF001")
End If
'znach это индекс типа integer, улавливается из события
Dim ser As String
' ser - это имя ресурса которое имеет связь с индексом znach
ser = "_1__" & znach - 1 & "_"
'Создаем бинарный файл из ресурса в указанной папке
IO.File.WriteAllBytes(Path, My.Resources.ResourceManager.GetObject(s er))
Process.Start(Path)
Вот как то так. Приложение работает, возможно повторюсь подход не верный, но пока так. Да помогла разобраться с ресурсами тема Файлы ресурсов - правильное использование
Еще раз спасибо nio.
Тему можно закрыть

Добавлено через 6 минут
Да забыл написать, что в папку с exe после установки не удалось обратиться для создания временного файла пишет (CurDir()), что то типа нет прав или доступа, поэтому такой путь для временного файла Path = "C:\Documents and Settings\All Users\Documents\PDF001\00001.pdf", скорее всего поменяю на более правильный где Temp. Нет времени пока разбираться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2015, 08:16
Помогаю со студенческими работами здесь

Перезапуск приложения после открытия и закрытия файла
У меня по клику на picturebox открывается файл Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles...

Записать в массив относительный путь с именем файла из папки(не зная полный путь папки)
Наверняка вопрос заезженный, но я не нашел(плохо искал) Нужно из вложенной папки, из директории, откуда запускается макрос вытащить имена...

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

Как поставить пароль для открытия файла или папки?
Всем знатокам доброго времени суток! Вопрос, собственно, в заголовке. Сторонние программы существуют, но код на NET найти не...

После выбора папки в FolderBrowserDialog необходимо вывести путь до этой папки в текстовое поле
После выбора папки в FolderBrowserDialog необходимо вывести путь до этой папки в текстовое поле


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru