Доступ к файлам проекта из класса в отдельной папке - PullRequest
2 голосов
/ 10 декабря 2010

Снимки экрана ниже с панели обозревателя решений:


У меня есть класс в папке DataAccess , которому требуется доступ к ресурсу в папке data . Я получаю следующее сообщение об ошибке.

System.IO.IOException: Cannot locate resource 'data/danio_rerio.xml'.

не работает, если:

Does not Work

Работает, если:

It works

Папка data является дочерней папкой в ​​папке DataAccess . Можно ли использовать следующий синтаксис:

foldername/somefile.someextension

для доступа к ресурсам в рамках проекта, которые находятся в отдельных папках?


Редактировать: я не хочу жестко кодировать местоположения в моих каталогах.

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

Когда вы запускаете приложение, работающий каталог становится вашим «активным каталогом»

Предположим, у вас есть

c:\myproject\bin\debug\myapp.exe

Когда вы запускаете приложение, вы пытаетесь найти

c:\myproject\bin\debug\foldername\somefile.someextension

то, что вы на самом деле хотите, может быть близко к

c:\myproject\data\daniorenio.xml

, поэтому вам нужно искать следующий каталог

c:\myproject\bin\debug\..\..\data\daniorenio.xml

Оператор .. сообщает, что вы хотите вернуться в иерархию каталогов

Однако это предполагает, что ваш двоичный файл будет в более низкой ветви, чем ваш ресурс. Что я на самом деле делаю, так это копирую все, что мне абсолютно необходимо для выполнения, в специальный каталог, такой как

c:\myproject\RuntimeRequired

Таким образом, я могу выпустить событие после сборки, как это (В Project / Свойства / Build-Events / Post-Build)

copy / Y "$ (ProjectDir) RuntimeRequired *" "$ (OutDir)"

0 голосов
/ 02 января 2011

Я нашел ответ сам. Должны были искать больше, прежде чем предлагать награду -_-

Упаковать URI в WPF [Источник]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...