Сохранить / получить файл в каталоге проекта, а не в выходном каталоге - PullRequest
0 голосов
/ 20 июля 2010

Я создаю простое консольное приложение .NET, в котором я хочу сохранить файл в папке, являющейся частью корневого проекта, например: SolutionName.ProjectName\TestData\.Я хочу поместить test.xml в папку TestData.Однако когда я сохраняю свой XDocument, он сохраняет его в SolutionName.ProjectName\bin\x86\Debug Console\test.xml.

Что мне нужно сделать, чтобы сохранить или извлечь файл в папке, которая является дочерней по отношению к каталогу проекта?1008 *

Ответы [ 3 ]

2 голосов
/ 21 июля 2010

Я видел это раньше, но никогда не пробовал.Сделал быстрый поиск и выкопал это:

System.AppDomain.CurrentDomain.BaseDirectory

Сделайте это вместо Application.StartupPath для вашего консольного приложения.

2 голосов
/ 21 июля 2010

Ваше консольное приложение после компиляции больше не связано с вашим решением Visual Studio.Лучше всего, вероятно, просто «передать» путь вывода в ваше приложение в качестве аргумента командной строки:

Public Sub Main(args as String())

   ' don't forget validation: handle situation where no or invalid arguments supplied

    Dim outputFile = Path.Combine(args(0), "TestData", "test.xml")

End Sub

Теперь вы можете запустить ваше приложение так:

myapp.exe Path\To\SolutionFolder
0 голосов
/ 20 июля 2010

Вы можете использовать пространство имен System.IO для получения вашего каталога относительно вашего exe:

var exeDirectory = Application.StartupPath;
var exeDirectoryInfo = new DirectoryInfo(exeDirectory);
var projectDirectoryInfo = exeDirectoryInfo.Parent.Parent.Parnet; // bin/x86/debug to project

var dataPath = Path.Combine(projectDirectoryInfo.FullName, "TestData");

var finalFilename = Path.Combine(dataPath, "test.xml");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...