一尘不染

获取应用程序文件夹路径的最佳方法

c#

我看到有一些方法可以获取应用程序文件夹路径:

  1. Application.StartupPath
  2. System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location)
  3. AppDomain.CurrentDomain.BaseDirectory
  4. System.IO.Directory.GetCurrentDirectory()
  5. Environment.CurrentDirectory
  6. System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
  7. System.IO.Path.GetDirectory(Application.ExecutablePath)

根据情况,最佳方法是什么?


阅读 420

收藏
2020-05-19

共1个答案

一尘不染

AppDomain.CurrentDomain.BaseDirectory 对于访问位置相对于应用程序安装目录而言的文件而言,可能是最有用的。

在ASP.NET应用程序中,这将是应用程序的根目录,而不是bin子文件夹-这可能是您通常想要的。在客户端应用程序中,它将是包含主要可执行文件的目录。

在VSTO 2005应用程序中,它将是包含您的应用程序的VSTO托管程序集的目录,而不是Excel可执行文件的路径。

其他人可能会根据您的环境返回不同的目录-例如,参见@ Vimvq1987的答案。

CodeBase是找到文件的地方,可以是以http://开头的URL。在这种情况下,Location可能是程序集下载缓存。不保证为GAC中的程序集设置CodeBase

2020-05-19