进入我的项目根目录中的文件夹 - ASP.NET Core 3.1
Get to a Folder in the Root of my Project - ASP.NET Core 3.1
我有一个名为 TestLogging
的根文件夹,其中包含一个解决方案。我有一个控制台应用程序,它有自己的目录,还有一个测试项目也有它自己的目录。
在 Windows 资源管理器中,我在根文件夹 TestLogging
中手动创建了一个名为 Configuration 的目录,其中有一个名为 Configuration.config
.[=18= 的 xml
文件]
我正在尝试通过代码到达此路径以引用此文件,而不必使用此文件的绝对路径。
我已经使用 System.IO
尝试了此处示例的变体,它们都指向正在 运行 的当前项目的构建目录,例如MyConsoleApp\bin\Debug\netcoreapp3.1
以下是我尝试过的一些方法:
string defaultPath = System.IO.Directory.GetCurrentDirectory();
// this does the same as above!
string pathToConsoleApp = Path.GetFullPath(AppContext.BaseDirectory);
// very similar to the other two!
var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)));
如果已重复,请提前应用。
解决方案
string configpPath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Configuration.config.xml");
测试代码
class Program
{
static void Main(string[] args)
{
string defaultPath = System.IO.Directory.GetCurrentDirectory();
// this does the same as above!
string pathToConsoleApp = Path.GetFullPath(AppContext.BaseDirectory);
// very similar to the other two!
var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)));
string configpPath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Configuration.config.xml");
Console.WriteLine("Hello World!");
Console.WriteLine("defaultPath: " + defaultPath);
Console.WriteLine("pathToConsoleApp: " + pathToConsoleApp);
Console.WriteLine("projectPath: " + projectPath);
Console.WriteLine("configpPath: " + configpPath);
}
}
测试结果
我有一个名为 TestLogging
的根文件夹,其中包含一个解决方案。我有一个控制台应用程序,它有自己的目录,还有一个测试项目也有它自己的目录。
在 Windows 资源管理器中,我在根文件夹 TestLogging
中手动创建了一个名为 Configuration 的目录,其中有一个名为 Configuration.config
.[=18= 的 xml
文件]
我正在尝试通过代码到达此路径以引用此文件,而不必使用此文件的绝对路径。
我已经使用 System.IO
尝试了此处示例的变体,它们都指向正在 运行 的当前项目的构建目录,例如MyConsoleApp\bin\Debug\netcoreapp3.1
以下是我尝试过的一些方法:
string defaultPath = System.IO.Directory.GetCurrentDirectory();
// this does the same as above!
string pathToConsoleApp = Path.GetFullPath(AppContext.BaseDirectory);
// very similar to the other two!
var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)));
如果已重复,请提前应用。
解决方案
string configpPath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Configuration.config.xml");
测试代码
class Program
{
static void Main(string[] args)
{
string defaultPath = System.IO.Directory.GetCurrentDirectory();
// this does the same as above!
string pathToConsoleApp = Path.GetFullPath(AppContext.BaseDirectory);
// very similar to the other two!
var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)));
string configpPath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Configuration.config.xml");
Console.WriteLine("Hello World!");
Console.WriteLine("defaultPath: " + defaultPath);
Console.WriteLine("pathToConsoleApp: " + pathToConsoleApp);
Console.WriteLine("projectPath: " + projectPath);
Console.WriteLine("configpPath: " + configpPath);
}
}