如何获取Debug文件夹的目录路径?

时间:2018-05-31 16:18:08

标签: c# .net

我试图获取我的应用程序正在执行的Debug文件夹的目录路径,或者我应该说我正在运行的EXE程序运行的目录路径。

现在,你们许多人可能会说要做这样的事情

System.Reflection.Assembly.GetExecutingAssembly().Location

我无法做到这一点。我需要从替代装配中获得。我不知道这将是什么装配,所以我想它必须全局工作而不改变它,这取决于它目前所在的装配。

我正在寻找最佳方式(考虑速度和性能)。

1 个答案:

答案 0 :(得分:0)

System.AppContext.BaseDirectory

这是.net核心中AppDomain.CurrentDomain.BaseDirectory的首选替代品(至少在AppDomain出现API之前,如果有的话)。

AppDomain.CurrentDomain.BaseDirectory

这是全面的最佳选择。它将为您提供类库的基本目录,包括ASP.NET应用程序中的库。

Directory.GetCurrentDirectory()

这是使用kernel32.dll中的winapi GetCurrentDirectory调用进行互操作调用,这意味着通常会返回启动过程'文件夹。同样如MSDN文档所述,它不能保证在移动设备上运行。

Environment.CurrentDirectory

这只是调用Directory.GetCurrentDirectory()

Assembly.Location

这将使用

调用
this.GetType().Assembly.Location

这将返回调用程序集的完整路径,包括程序集名称本身。如果要调用单独的类库,则会返回其基本目录,例如“C:\ myassembly.dll” - 显然取决于正在使用的Assembly实例。

Application.StartupPath

这是在System.Windows.Forms命名空间内,因此通常仅在窗体窗体应用程序中使用。

Application.ExecutablePath

与Application.StartupPath相同,但是这也包括应用程序名称,例如“myapp.exe”

source

chris-s