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所在的目录。

 

posted @   捞月亮的猴子  阅读(6657)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示