保存/检索项目目录中的文件,而不是输出目录

时间:2010-07-20 17:25:51

标签: c# .net vb.net file-io

我正在创建一个简单的.NET控制台应用程序,我想将文件保存在根项目的一个文件夹中,如下所示:SolutionName.ProjectName\TestData\。我想将test.xml放入TestData文件夹。但是,当我去保存XDocument时,它会将其保存到SolutionName.ProjectName\bin\x86\Debug Console\test.xml

在项目目录的子文件夹中保存或检索文件需要做什么?

3 个答案:

答案 0 :(得分:2)

我之前见过这个,但从未真正试过。快速搜索并挖出来了:

System.AppDomain.CurrentDomain.BaseDirectory

为您的控制台应用程序提供一个镜头,而不是Application.StartupPath。

答案 1 :(得分:2)

您的控制台应用程序一旦编译,就不再与您的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

答案 2 :(得分:0)

您可以使用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");
相关问题