繁体   English   中英

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

[英]Save/retrieve a file in a project directory, not the output directory

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

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

我以前见过,但从未真正尝试过。 快速搜索并将其挖掘出来:

System.AppDomain.CurrentDomain.BaseDirectory

为控制台应用程序提供一个代替Application.StartupPath的功能。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM