我如何正确使用我的应用程序目录?

时间:2017-12-04 11:06:34

标签: c# console directory publish appdata

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

时,它工作

我的目标是创建一个这样的目录: Applicationmap + application.exe +设置 资源图 + configurations.txt 记录仪 +。

现在,如果我尝试访问配置文件,它会将我发送给: C:\Users\<username> \AppData\Local\Apps\2.0\D01L7N51.9EW\R7HB7NAB.B7Y \sele..tion_0000000000000000_0001.0000_92af5262ce6f49d8

虽然我期待C:/Users/<username>/ Documents/<application>/ + resources/config.txt

我已经尝试了

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

&安培;&安培;

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

&安培;&安培;

Console.WriteLine(Directory.GetCurrentDirectory());

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

2 个答案:

答案 0 :(得分:0)

怎么样:

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

答案 1 :(得分:0)

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

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

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

或(但由于其安全性较低,因此风险自负):

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

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

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

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