zoukankan      html  css  js  c++  java
  • c#获取应用程序目录,C#中得到程序当前工作目录和执行目录方法大全

    using System.Runtime.InteropServices;
    
    [DllImport("User32.dll")]
    public static extern void keybd_event(Byte bVk,Byte bScan,Int32 dwFlags,Int32 dwExtraInfo);
    
    private void button1_Click(object sender, System.EventArgs e)
    {
    keybd_event(0x5b, 0, 0, 0); //0x5b是left win的代码,这一句使key按下,下一句使key释放。
    keybd_event(0x5b, 0, 0x2, 0); 
    }
    keybd_event方法的用法如上

    str += " " + System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;

    str += " " + System.Environment.CurrentDirectory;
    str += " " + System.IO.Directory.GetCurrentDirectory();
    str += " " + System.AppDomain.CurrentDomain.BaseDirectory;
    str += " " + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
    str += " " + System.Windows.Forms.Application.StartupPath;
    str += " " + System.Windows.Forms.Application.ExecutablePath;
    Console.Write(str);
    Console.ReadKey();

    得到结果:

    D:1inDebug路径测试.vshost.exe
    D:1
    inDebug
    D:1
    inDebug
    D:1
    inDebug
    D:1
    inDebug
    D:1
    inDebug
    D:1
    inDebug路径测试.EXE

    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.Star

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


    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:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。

    tupPath 
         获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个""而已
    7. System.Windows.Forms.Application.ExecutablePath
         获取启动了应用程序的可执行文件的路径及文件名,效果有时和1一样。

  • 相关阅读:
    Oracle中有大量的sniped会话
    Error 1130: Host '127.0.0.1' is not allowed to connect to this MySQL server
    汉字转换为拼音以及缩写(javascript)
    高效率随机删除数据(不重复)
    vs2010 舒服背景 优雅字体 配置
    mvc中的ViewData用到webfrom中去
    jquery ajax return值 没有返回 的解决方法
    zShowBox (图片放大展示jquery版 兼容性好)
    动感效果的TAB选项卡 jquery 插件
    loading 加载提示······
  • 原文地址:https://www.cnblogs.com/renfeng/p/3365622.html
Copyright © 2011-2022 走看看