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:\Programming\CoreTest\TestApi

5.其他特殊方法

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

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

二、注意事项

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

例如:

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

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

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

三、总结

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

原文地址:https://www.cnblogs.com/dengquan/p/12132733.html

时间: 2024-10-17 23:19:44

C#应用程序本地目录的相关文章

C# 获取程序安装目录

在网页启动本地程序需要将命令写入注册表,在网页调用命令即可. 首先将注册信息创建一个注册表文件 .reg 格式,以页面启动 notepad++ 程序为例 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Webshell] [HKEY_CLASSES_ROOT\Webshell\DefaultIcon] [HKEY_CLASSES_ROOT\Webshell\shell] [HKEY_CLASSES_ROOT\Webshell\she

C#如何加载程序运行目录外的程序集 (转)

---恢复内容开始--- 尼玛,为了这个问题,纠结到差点吐出干血,赶紧记下来! 源地址:http://blog.csdn.net/dyllove98/article/details/9391325 我们的应用程序部署的时候,目录结构一般不会只有运行程序的目录这一个,我们可能在运行目录下建子目录,也可能使用System32目录,也可能使用其它第三方的程序集..Net程序集 首先会在GAC中搜索相应的版本,如果未找到则会应用程序配置文件中找(如果配置),最后到应用程序所在的路径搜索. 如何可以将程序

利用阿里云镜像构建mysql数据库并挂载本地目录

docker构建mysql镜像,在mysql下创建data数据库,将其挂载到本地物理机磁盘目录,删除mysql容器后,可以在本地目录找到对应数据库 docker image命令查看本地镜像 创建名为mysql1的容器并运行它,将物理机/data目录挂载到mysql1容器的数据库存储位置/var/lib/mysql 安装mysql-server服务 启动mysql服务 查看默认数据库 创建cs数据库 查看镜像本地数据库存储看cs文件夹是否创建 删除mysql1容器 查看物理机/data存储看cs文

[转] C# 获取程序运行目录

来自 莫等闲也,原文 // 获取程序的基目录.  System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName // 获取和设置当前目录(该进程从中启动的目录)的完全限定目录. System.Environment.CurrentDirectory // 获取应用程序的当前工作目录. System.IO.Di

C#获取当前程序运行目录大全

Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取新的Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名). string str = System.Diagnostics.Process.Get

IOS程序常用目录

<Home>/AppName.app   应用程序本身包目录 <Home>/Documents/       应用程序的重要数据文件和用户数据文件等都放在这个目录, iTunes进行备份和恢复时,这个目录会被复制. <Home>/Library/Preferences   存放app的偏好设置文件,使用NSUserDefaults类产生的文件 <Home>/Library/Caches   用于存放app使用过程中产生的支持文件和缓存文件, 还有日志文件也最

hdfs 通过NFSV3 加载至本地目录

常常会有这种需求,把HDFS的目录MOUNT到本地目录,然后方便使用LINUX下面的命令直接操作. FUSE也可以达到同样的效果,但是配置比较复杂,新的HADOOP版本都建议使用NFS3来完成这个需求. 要点记录, 1. CORE-SITE.XML 修改 <property>    <name>hadoop.proxyuser.student.groups</name>    <value>*</value>  <description&g

python打开一个本地目录文件路径

os.path.abspath()os 模块为 python 语言标准库中的 os 模块包含普遍的操作系统功能.主要用于操作本地目录文件.path.abspath()方法用于获取当前路径下的文件. 比如: file_path = 'file:///' + os.path.abspath('checkbox.html') driver.get(file_path)

DOS批量拷贝本地目录到远程主机(定时执行)

1 @echo off 2 setlocal enabledelayedexpansion 3 rem -----Batch File----- 4 for /f "tokens=1,2 " %%a in (list.txt) do ( 5 set REMOTE_ADDR=%%a 6 echo !REMOTE_ADDR! 7 set PWD=%%b 8 echo !PWD! 9 set USER=administrator10 echo !USER!11 net use \\!REMO