C#获取目录的几种方法

转载 2015年07月08日 13:49:10

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\。

来至:http://wenqingluomo.blog.163.com/blog/static/791717402010101931946397/

 

// 获取程序的基目录。
System.AppDomain.CurrentDomain.BaseDirectory

// 获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName  //可获得当前执行的exe的文件名。

// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
System.Environment.CurrentDirectory  //备注   按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。

// 获取应用程序的当前工作目录。
System.IO.Directory.GetCurrentDirectory()

// 获取和设置包括该应用程序的目录的名称。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase 

AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。

// 获取启动了应用程序的可执行文件的路径。
System.Windows.Forms.Application.StartupPath  //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

// 获取启动了应用程序的可执行文件的路径及文件名
System.Windows.Forms.Application.ExecutablePath  //获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

 

C# WinForm中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别示例如下:

private void Frm_Server_Load(object sender, EventArgs e)
{
      MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory);
      MessageBox.Show(Application.StartupPath );
}

说明:

1.   AppDomain.CurrentDomain.BaseDirectory 返回结果为: D:\mycode\

     Application.StartupPath 返回结果为: D:\mycode

2.  Application.StartupPath 只能用于WinForm窗体中,而AppDomain.CurrentDomain.BaseDirectory既可以用于WinForm窗体中,也可以用于类库DLL文件中.

 

 

微信公众平台获取“openid”的方法

微信公众平台的所谓“openid”分为两种: [第一种openid]为利用交互的xml中获取: 每个用户针对每个微信公众平台唯一,即同一个用户对不同微信公众平台[第一种openid]是不同...
  • china_skag
  • china_skag
  • 2015年05月27日 11:31
  • 6224

Android:简易路径导航条

本文要实现的是如图所示的路径导航条, 类似于文件管理器的效果。 该导航条包含三个功能: 1. 支持追加任意个子路径(文字一行写不下时可左右滑动); 2. 支持返回到上一个路径; 3. 支持点...
  • books1958
  • books1958
  • 2016年11月25日 12:08
  • 547

C# 获得父目录,指定级父目录

//方法一:使用算法private string get_dir_parent1(string dir, int n) //n为几级父目录{    string[] st = dir.Split(//...
  • yanleigis
  • yanleigis
  • 2007年12月16日 12:44
  • 4845

c# 获取目录大小

方法一:不用遍历整个目录? --------------------------------------------------------------- 项目->引用 浏览 COM组件 Micros...
  • happywwh
  • happywwh
  • 2010年07月28日 10:25
  • 3854

android应用的几种功能导航实现思路

导航的几种实现     1)系统自带的Tabhost,导航菜单用TextView、RadioButton、Button。                              |      ...
  • yanxing2012
  • yanxing2012
  • 2014年12月24日 14:11
  • 616

Java中获得数据库连接的几种方法

以MySql为例 1、传统方式 首先需要加载数据库驱动(JDBC4.0后可省略) 一共有3种方式: 1、DriverManager.registerDriver(new Drive...
  • csdn_mrsongyang
  • csdn_mrsongyang
  • 2015年07月24日 09:56
  • 2040

有哪几种方式获得Class类对象(实例)的方法?和对反射的理解和作用?

其实对于初级java程序员来说,一说到类的对象和实例总是会混淆。Class是java中api中的类名。class是一个关键字。Class是反射技术的核心。 每一个class都有一个Class对象。一...
  • asfanj
  • asfanj
  • 2017年11月15日 20:27
  • 77

C#文件操作,父目录,子目录,所有文件、文件夹,属性信息

  下面代码主要参考了C#高级编程第六版的源码部分改写增加了中文注释,using System;using System.IO;using System.Windows.Forms;namespace...
  • goodnew
  • goodnew
  • 2011年03月25日 19:27
  • 6247

获取C#各种运行目录

// 获取程序的基目录。 System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径。 System.Diagnostics.Proce...
  • LOTOOHE
  • LOTOOHE
  • 2017年07月06日 16:27
  • 380

C#线程间同步的几种实现方式

一、使用信号量 using System; using System.Threading; namespace SemaphoreDemo { class Program { ...
  • conquerwave
  • conquerwave
  • 2016年03月01日 20:30
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#获取目录的几种方法
举报原因:
原因补充:

(最多只允许输入30个字)