关于c#:我如何找到我的应用程序目录?

How do i get right the directory of my application?

本问题已经有最佳答案,请猛点这里访问。

我制作了一个小的控制台应用程序(首先在C中发布)。但我不能使用我的资源文件。我用文本文件可以给它。当我使用调试目录时它起作用了

我的目标是创建这样的目录:应用图+应用程序.exe+设置资源图+配置.txt记录器+。

现在,如果我尝试访问它发送给我的配置文件:C:\Users\ \AppData\Local\Apps\2.0\D01L7N51.9EW
7HB7NAB.B7Y
\sele..tion_0000000000000000_0001.0000_92af5262ce6f49d8

我在等你的时候。

我试过了

1
2
string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Console.WriteLine(dir);

&;

1
Path.GetDirectoryName(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));

&;

1
Console.WriteLine(Directory.GetCurrentDirectory());

但我总是在AppData地图上结束。


您可以简单地使用Application.StartupPath(引用),但结果始终取决于您将可执行文件放在/安装的位置。

如果您总是希望指向当前用户的Documents文件夹(在操作系统中注册为特殊文件夹),就像在您的示例中一样,您可以使用:

1
String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

或者(但你自己承担风险,因为它不太安全):

1
String path = Path.Combine(Environment.ExpandEnvironmentVariables("%userprofile%"),"Documents");

一旦使用第一种或第二种方法检索到正确的Documents文件夹路径,请将其与最后一部分结合起来:

1
path = Path.Combine(path,"resources/config.txt");

有关这两种方法的更多信息:

  • 环境.getfolderpath
  • environment.expandenvironment变量


怎么样:

1
System.IO.Path.GetDirectoryName(Application.ExecutablePath);