С Новым годом! Форум программистов, компьютерный форум, киберфорум
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. Показов 6156. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru