zoukankan      html  css  js  c++  java
  • C#应用程序本地目录

    有时,我们需要获取应用程序所在目录,以便实现某种功能(如上传下载功能)。获取目录的方式多种多样,也各有区别,在此归纳总结。

    一、路径获取方法

    1.AppDomain.CurrentDomain

    // 获取程序的基目录。
    System.AppDomain.CurrentDomain.BaseDirectory

    // 获取和设置包括该应用程序的目录的名称。
    System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

    2.System.Diagnostics.Process

    // 获取模块的完整路径,包含文件名
    System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

    3.System.Environment

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

    4.System.IO.Directory

    // 获取应用程序的当前工作目录,注意工作目录是可以改变的,而不限定在程序所在目录
    System.IO.Directory.GetCurrentDirectory()

    E:ProgrammingCoreTestTestApi

    5.其他特殊方法

    WinForm

    // 获取启动了应用程序的可执行文件的路径。

    System.Windows.Forms.Application.StartupPath

    // 获取启动了应用程序的可执行文件的路径及文件名
    System.Windows.Forms.Application.ExecutablePath

    AspNet

    Hosting.HostingEnvironment

    二、注意事项

      1.在不同系统中,对字符串的处理可能会不一样,尤其是一些特殊字符,如""。所以拼接目录时,不要用字符串相加的方式,而是用方法接口,因为一般底层帮我们做了相关兼容。

    例如:

    不要使用  AppDomain.CurrentDomain.BaseDirectory + "\myFiles";

    而是使用  System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "myFiles");

      2.根据发布部署方式和系统的不同,应用程序的具体目录也会不同。如,不一定会存在bin目录。所以,尽量不要自行拼接出已有的程序目录来使用,而是基于程序目录,自行创建目录使用。

    三、总结

     除了Directory方式,其他方法都是本应用程序域的路径。所以在使用中,因该尽量避免用Directory方式,除非本身有必须使用工作目录的需求

  • 相关阅读:
    QML使用动画连续非线性改变int的取值
    QML粒子系统
    QML获取当前时间
    QML与C++混合编程
    QMLBinding
    QML图形渲染QtGraphicalEffects
    [九度][何海涛] 数组中只出现一次的数字
    [九度][何海涛] 扑克牌顺子
    [九度][何海涛] 最大子向量和
    [九度][何海涛] Move!Move!!Move!!!
  • 原文地址:https://www.cnblogs.com/dengquan/p/12132733.html
Copyright © 2011-2022 走看看