• C# 运行 程序 目录


    c#获取应用程序目录

    string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。  
    string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
    //备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。
    string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。
    string str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。
    string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
    string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
    string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。

    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一样。

     

     

     


    1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”;

    2.c# winform
    A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”;
    B:“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称;
    C:“AppDomain.CurrentDomain.BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
    D:“System.Threading.Thread.GetDomain().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
    E:“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;
    F:“System.IO.Directory.GetCurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;

    3.c# windows service用“AppDomain.CurrentDomain.BaseDirectory”或“System.Threading.Thread.GetDomain().BaseDirectory”;
    用“Environment.CurrentDirectory”和“System.IO.Directory.GetCurrentDirectory”将得到“ system32”目录的路径;
    如果要使用“Application.StartupPath”或“Application.ExecutablePath ”,需要手动添加对“System.Windows.Forms.dll ”的引用,并在程序开头用“using    System.Windows.Forms”声明该引用;

     

     

    对于.net。有如下几种方式取得应用程序路径。

    1、Server.MapPath
    2、System.Windows.Forms.StartupPath
    3、Type.Assembly.Location

    方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。
    但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用

  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/rsls/p/4364117.html
Copyright © 2020-2023  润新知