String apppath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; //获取整个文件路径名
apppath = apppath.Substring(0, apppath.LastIndexOf(@"\")); //去掉/后面的程序名
MessageBox.Show(apppath);

1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
获取模块的完整路径。可获得当前执行的exe的文件名。

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

备注:
按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启 动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。
另外如果在在另外一个程序调用包含使用该方法的程序时,该方法取得的值为另外一个程序所在的路径。

3. System.IO.Directory.GetCurrentDirectory()
获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么东东,我也搞不懂了。

注:此方法取值不固定,随着OpenFileDialog、 SaveFileDialog等对象所确定的目录而改变。

2和3效果相同。
4. System.AppDomain.CurrentDomain.BaseDirectory
获取程序的基目录。获取基目录,它由程序集冲突解决程序用来探测程序集。

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

6. System.Windows.Forms.Application.StartupPath
获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。效果和4、5一样。只是5返回的字符串后面多了一个"\"而已

7. System.Windows.Forms.Application.ExecutablePath
获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。

代码示例:
//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = System.AppDomain.CurrentDomain.BaseDirectory;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取和设置包含该应用程序的目录的名称。
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str = System.Windows.Forms.Application.StartupPath;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str = System.Windows.Forms.Application.ExecutablePath;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。
string str = System.IO.Directory.GetCurrentDirectory();
result: X:\xxx\xxx (.exe文件所在的目录)

最新文章

  1. VsFtpd服务配置简明笔记
  2. Also unsere eigene Christian Louboutin Webshop bietet die überragende Christian Louboutin Schuhe uk schiebt zusammen mit kostengünstigen Wert
  3. Ubuntu 15.10搭建IPSec L2TP服务器
  4. python中列表、元组、字典内部功能介绍
  5. scala Ordering
  6. JavaEE路径陷阱之getRealPath
  7. 利用 libiconv 实现汉字编码 utf-8 格式 和 gbk格式的相互转换
  8. 问题-FireDAC连接Sqlite3提示“unable to open database file”
  9. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理
  10. ERP流程图
  11. model中字段格式验证
  12. 【NOIP2014提高组】寻找道路
  13. 如何给自己的外包APP开发报价?
  14. eclipse maven 构建简单springmvc项目
  15. Django 模板系统
  16. Object类的wait方法带参数和notifyAll方法
  17. Lodop打印旋转180度 倒着打
  18. Pytorch复现Faster-RCNN
  19. Codeforces 781C Underground Lab
  20. python3.7.2 pip 出现locations that require TLS/SSL异常处理方法

热门文章

  1. jforum发表文章和回复文章显示中文乱码问题
  2. os期末复习
  3. SVG格式文件
  4. 【QSBOJ】字符串编辑
  5. Java的SpringMVC执行流程
  6. ElasticSearch学习,入门篇(一)
  7. 侯捷C++学习(一)
  8. 软件构造 Lab1
  9. SQL state [72000]; error code [1461]; ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 ; nested exception is java.sql.BatchUpdateException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
  10. C++中数字与字符串之间的转换 scanf string总结(复习必读)