C#中的各种路径

本文介绍了在C#中获取程序不同路径的方法,包括模块路径、启动路径、工作目录等,并提供了一种判断程序运行类型(Windows或Web)的实用代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.      System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
        获取模块的完整路径。
2.      System.Environment.CurrentDirectory
        获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3.      System.IO.Directory.GetCurrentDirectory()
        获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:/www里,这个函数有可能返回C:/Documents and Settings/ZYB/,或者C:/Program Files/Adobe/,有时不一定返回什么东东,我也搞不懂了。
4.     System.AppDomain.CurrentDomain.BaseDirectory
        获取程序的基目录。
5.     System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
        获取和设置包括该应用程序的目录的名称。
6.     System.Windows.Forms.Application.StartupPath
        获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"/"而已
7.     System.Windows.Forms.Application.ExecutablePath
        获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。


对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码  string path = "";
           if (System.Environment.CurrentDirectory == appDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等
           {
                 path = AppDomain.CurrentDomain.BaseDirectory;
             }
           else
           {
                 path = AppDomain.CurrentDomain.BaseDirectory + "Bin/";
             }
这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值