zoukankan      html  css  js  c++  java
  • C#获取当前路径的7种方法

    转自 http://www.csharpwin.com/csharpspace/5025r2141.shtml

    C#获取当前路径的方法如下:

        1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

        -获取模块的完整路径。

        2. System.Environment.CurrentDirectory

        -获取和设置当前目录(该进程从中启动的目录)的完全限定目录。

        3. System.IO.Directory.GetCurrentDirectory()

        -获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:www里,这个函数有可能返回C:Documents and SettingsYB\,或者C:Program FilesAdobe\,有时不一定返回什么东东,我也搞不懂了。

        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中,那么用上面的代码就很方便了.

        1、Server.MapPath

        2、System.Windows.Forms.StartupPath

        3、Type.Assembly.Location

        C#获取当前路径方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。

        但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是:            C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。

        C#获取当前路径的方法就总结到这里,希望对大家有所帮助。

  • 相关阅读:
    September 17th 2016 Week 38th Saturday
    【2016-09-16】UbuntuServer14.04或更高版本安装问题记录
    September 16th 2016 Week 38th Friday
    September 11th 2016 Week 38th Sunday
    September 12th 2016 Week 38th Monday
    September 10th 2016 Week 37th Saturday
    September 9th 2016 Week 37th Friday
    c++暂停
    八皇后问题
    ( 转转)Android初级开发第九讲--Intent最全用法(打开文件跳转页面等)
  • 原文地址:https://www.cnblogs.com/IT-Bear/p/3446979.html
Copyright © 2011-2022 走看看