zoukankan      html  css  js  c++  java
  • 获取和设置 C# 应用程序目录

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    C# WinForm,用

    • Application.StartupPath: 获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称;
    • Application.ExecutablePath:获取启动了应用程序的可执行文件的路径,包括可执行文件的名称;
    • AppDomain.CurrentDomain.BaseDirectory:BaseDirectory 是一个 AppDomain 在何处查找 dll 加载而 ExecutablePath 将提供 (包括文件名) 的原始的可执行文件的路径;
    • System.Threading.Thread.GetDomain().BaseDirectory:获取当前应用程序所在目录的路径;
    • Environment.CurrentDirectory:获取和设置当前目录(即该进程从中启动的目录)的完全限定路径;
    • System.IO.Directory.GetCurrentDirectory:获取应用程序的当前工作目录;

    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 声明该引用。

    ASP.NET,用:

    • Server.MapPath;
    • System.Windows.Forms.StartupPath;
    • Type.Assembly.Location;
    • Request.PhysicalApplicationPath 获取站点所在虚拟目录的物理路径,最后包含“\”。

    方法 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 的引用后使用。

  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/netcorner/p/2911978.html
Copyright © 2011-2022 走看看