C#中如何获取当前目录和上级目录

 更新时间:2023年07月13日 08:54:20   作者:木依  
这篇文章主要介绍了C#中如何获取当前目录和上级目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C#获取当前目录和上级目录

//使用AppDomain获取当前目录
string dir = AppDomain.CurrentDomain.BaseDirectory;
string info = string.Format("当前目录:{0}", dir);
Console.WriteLine(info);
//使用path获取当前应用程序集的执行的上级目录
string dir1 = Path.GetFullPath("..");
string info1 = string.Format("上级目录:{0}", dir1);
Console.WriteLine(info1);
//使用path获取当前应用程序集的执行的上上级级目录
string dir2 = Path.GetFullPath(@"..//..");
string info2 = string.Format("上上级目录:{0}", dir2);
Console.WriteLine(info2);

结果如下:

C#获取根目录的方法集合

1、取得控制台应用程序的根目录方法

  • 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径  
  • 方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集

2、取得Web应用程序的根目录方法 

  • 方法1、HttpRuntime.AppDomainAppPath.ToString();//获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。用于App_Data中获取
  • 方法2、Server.MapPath("") 或者Server.MapPath("~/");//返回与Web服务器上的指定的虚拟路径相对的物理文件路径
  • 方法3、Request.ApplicationPath;//获取服务器上ASP.NET应用程序的虚拟应用程序根目录

3、取得WinForm应用程序的根目录方法

  • 1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径
  • 2、Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称
  • 3、Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
  • 4、AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集
  • 5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称

其中:以下两个方法可以获取执行文件名称

  • 1、Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。
  • 2、Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称

获取.net的根目录的方法

  • 方法1:System.Web.HttpContext.Current.Request.PhysicalApplicationPath
  • 方法2:System.Web.HttpContext.Current.Server.MapPath("./")

总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径

1、Server.MapPath("/")

注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。

2、Server.MapPath("./")

注:获得所在页面的当前目录,等价于Server.MapPath("")。

3、Server.MapPath("../")

注:获得所在页面的上级目录。

4、Server.MapPath("~/")

注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • c#异步task示例分享(异步操作)

    c#异步task示例分享(异步操作)

    这篇文章主要介绍了c#异步task示例(异步操作),需要的朋友可以参考下
    2014-03-03
  • C#如何遍历Dictionary

    C#如何遍历Dictionary

    这篇文章主要为大家详细介绍了C#遍历Dictionary的方法,.NET中的Dictionary是键/值对的集合,使用起来比较方便,Dictionary也可以用KeyValuePair来迭代遍历,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • WPF实现控件拖动的示例代码

    WPF实现控件拖动的示例代码

    这篇文章主要介绍了WPF实现控件拖动的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 详解如何在C#中使用投影(Projection)

    详解如何在C#中使用投影(Projection)

    这篇文章主要介绍了详解如何在C#中使用投影(Projection),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C#中的yield关键字的使用方法介绍

    C#中的yield关键字的使用方法介绍

    yield这个关键字是和迭代器挂钩的,而且是与return一起以yield return的形式合用的,用来返回迭代器中的条目。
    2013-04-04
  • SuperSocket封装成C#类库的步骤

    SuperSocket封装成C#类库的步骤

    这篇文章主要介绍了SuperSocket封装成C#类库的步骤,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#实现给图片添加日期信息的示例详解

    C#实现给图片添加日期信息的示例详解

    这篇文章主要为大家详细介绍了如何利用C#实现给图片添加日期信息,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • c#之用户定义的数据类型转换介绍

    c#之用户定义的数据类型转换介绍

    c#允许定义自己的数据类型,这意味着需要某些工具支持在自己的数据类型间进行数据转换。方法是把数据类型转换定义为相关类的一个成员运算符,数据类型转换必须声明是隐式或者显式,以说明怎么使用它
    2014-01-01
  • C#中IEnumerator<T>和IEnumerable的区别

    C#中IEnumerator<T>和IEnumerable的区别

    在C#中,IEnumerator<T>和IEnumerable是用于实现迭代的接口,本文主要介绍了C#中IEnumerator<T>和IEnumerable的区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C#委托与匿名委托详解

    C#委托与匿名委托详解

    这篇文章主要为大家详细介绍了C#委托与匿名委托的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论