C# 通过C获取应用程序正在运行的根目录的普遍方法#

C# 通过C获取应用程序正在运行的根目录的普遍方法#,c#,winforms,.net-3.5,C#,Winforms,.net 3.5,我的应用程序要求我有权访问文件系统。无论代码是在web服务器上还是在控制台应用程序上运行,我如何获取应用程序运行的根目录。类似于C:\TheApplication 谢谢 最简单的可能是: System.Reflection.Assembly.GetExecutingAssembly().Location 希望这有帮助 -Oisin您可以尝试以下方法: String path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Loca

我的应用程序要求我有权访问文件系统。无论代码是在web服务器上还是在控制台应用程序上运行,我如何获取应用程序运行的根目录。类似于C:\TheApplication

谢谢

最简单的可能是:

System.Reflection.Assembly.GetExecutingAssembly().Location
希望这有帮助

-Oisin

您可以尝试以下方法:

String path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
您可以在此处阅读有关这两个类的更多信息:

  • 阶级
  • 阶级
更简单:

string myPath = Application.ExecutablePath;


对于winforms应用程序,这是始终设置的。

我刚刚测试了一种非常基本的方法,可以在asp.net和windows服务中使用

var binariesPath = string.IsNullOrEmpty(AppDomain.CurrentDomain.RelativeSearchPath) 
                    ? AppDomain.CurrentDomain.BaseDirectory // Windows Service
                    : AppDomain.CurrentDomain.RelativeSearchPath; // Asp.net

啊……我今天戴着我的白痴帽子;)完全忘了!出于好奇,我想知道当执行的程序集在全局程序集缓存中时会返回什么?@jdk,只是一个猜测,但这不会返回调用的EXE,而不是放置反射调用的程序集吗?我不是C#程序员,也没有查过文档,但仅从名称来看,我希望它返回可执行文件的路径,而不是当前的工作目录。我怀疑OP想要工作目录。