Как получить путь к файлу, который мы включаем в нашу папку решения? - PullRequest
0 голосов
/ 06 октября 2011

У меня есть проблема, когда мне нужно получить путь к файлу XML, который я включил в свое решение.Может ли кто-нибудь тело, как получить путь к этому файлу?Кто-нибудь может предоставить мне детали, чтобы найти путь?

Ответы [ 6 ]

1 голос
/ 06 октября 2011

Попробуйте это ..

String path = Application.StartupPath + "\ test.xml";

Если ваш xml был внутри в папке BIN, вы можете использовать этот код при полученииваш xml.

0 голосов
/ 06 октября 2011

Я бы с подозрением отнесся к этому требованию на вашем месте.Концептуально, ваш каталог решений и решение в целом - это «строительные материалы» и ваш скомпилированный, развертываемый код вашего готового «здания», которое вы дадите клиенту.То, что вы просите здесь, это как строитель дома, говорящий: «Какой лучший способ приклеить мой молоток к полу подвала?»Кто-то может дать вам хороший ответ, но правильно ли применять решение - хорошая идея?

Чтобы быть более конкретным, почему ваш исполняемый код во время выполнения зависит от времени, предшествующего сборке / сборке?структура решения?Я бы предположил, что вы, вероятно, на самом деле хотите сделать это иметь событие build , которое копирует XML из папки вашего решения в целевой каталог, где ваш целевой исполняемый файл создается и разворачивается.Если вы сделаете это, то можете просто использовать свой подход «CurrentDirectory» в коде, не беспокоясь о том, как структурировано решение.События сборки используют синтаксис командной строки и имеют доступные «макросы» для вашего каталога решений, так что у вас будет такой, что-то вроде «xcopy $ (SolutionDir) test.xml $ (BuildDir)» *

(MyПриносим извинения, если вы уже знаете об этом, и у вас есть некоторые особые требования к наличию кода, который пересекает его собственную структуру решения).

0 голосов
/ 06 октября 2011

Если ваш параметр принимает URI, вы можете использовать что-то вроде этого

new Uri("/<proejct or assembly name>;component/<folder path>/<filename>")

Например, у моего проекта foo.bar есть папка с именем resources, в которой у меня есть файл dummy.xml, который я могу использовать

new Uri("/foo.bar;component/resources/dummy.xml")
0 голосов
/ 06 октября 2011

Если он находится в папке решения, то он не будет находиться в текущем каталоге приложения (соответствующая папка bin в зависимости от конфигурации сборки), если вы не убедитесь, что это тип контента и он скопирован в папку сборки

0 голосов
/ 06 октября 2011

Это зависит от расположения файла.Метод Directory.GetCurrentDirectory() возвращает путь к исполняемому файлу (bin\debug)

0 голосов
/ 06 октября 2011

Вам нужно поместить файлы в корневую папку проекта.Также попробуйте исправить косую черту: ... + "\\test.xml"

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