这篇文章主要介绍了C#获取根目录实现方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,共有四种项目情况的方法,需要的朋友可以参考下
1.控制台应用程序
static void Main(string[] args)
{
//1.Environment.CurrentDirectory
Console.WriteLine(Environment.CurrentDirectory);
//2.AppDomain.CurrentDomain.BaseDirectory
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
//3.项目的目录
Console.WriteLine(Path.GetFullPath("../../"));
Console.ReadKey();
}
运行结果:
2.winform应用程序
private void Form1_Load(object sender, EventArgs e)
{
//1.Environment.CurrentDirectory
txtBox1.Text = Environment.CurrentDirectory;
//2.Application.StartupPath
txtBox2.Text = Application.StartupPath;
//3.Directory.GetCurrentDirectory()
txtBox3.Text = Directory.GetCurrentDirectory();
//4.AppDomain.CurrentDomain.BaseDirectory
txtBox4.Text = AppDomain.CurrentDomain.BaseDirectory;
}
效果如下:
3.MVC和WebForm项目
通过Server.MapPath("/")获取根目录
//WebForm
<h1><%=Server.MapPath("/") %></h1>
//Mvc
<h1>@Server.MapPath("/")</h1>
4.WebApi项目
public class ValuesController : ApiController
{
//api/values
public string Get()
{
return System.Web.Hosting.HostingEnvironment.MapPath("/");
}
}
WebApi Core的根目录获取:HttpRuntime.AppDomainAppPath
补充:WebForm /Mvc /WebApi项目的根目录为配置文件Web.config所在的目录。
以上就是本文的全部内容,希望对大家的学习有所帮助,欢迎大家留言。
推荐阅读: SignalR+Hangfire 实现后台任务队列和实时通讯 .NET 7+SignalR+Hangfire实现后台任务队列和实时通讯 C# 中如何计算一个实例占用多少内存? 如何让Task在非线程池线程中执行? 宇宙神器.NET 8 Preview 4 发布 .NET如何避免让线程摸鱼,请用异步技术 async await 拿捏他~ 点击下方卡片关注DotNet NB
一起交流学习
▲ 点击上方卡片关注DotNet NB,一起交流学习
请在公众号后台
回复 【路线图】获取.NET 2023开发者路线图 回复 【原创内容】获取公众号原创内容 回复 【峰会视频】获取.NET Conf开发者大会视频 回复 【个人简介】获取作者个人简介 回复 【年终总结】获取作者年终总结 回复 【加群】加入DotNet NB 交流学习群 长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。