C# 如何正确获取应用程序的目录?
我制作了一个小的控制台应用程序(第一次是用c#发布的)。但是我不能使用我的资源文件。我用文本文件可以给它。当我使用调试目录时,它起作用了 我的目标是创建如下目录: 应用程序地图 +application.exe +设置 资源图 +configurations.txt 记录器 + 现在,如果我尝试访问它发送给我的配置文件:C# 如何正确获取应用程序的目录?,c#,console,directory,publish,appdata,C#,Console,Directory,Publish,Appdata,我制作了一个小的控制台应用程序(第一次是用c#发布的)。但是我不能使用我的资源文件。我用文本文件可以给它。当我使用调试目录时,它起作用了 我的目标是创建如下目录: 应用程序地图 +application.exe +设置 资源图 +configurations.txt 记录器 + 现在,如果我尝试访问它发送给我的配置文件: C:\Users\\AppData\Local\Apps\2.0\D01L7N51.9EW\R7HB7NAB.B7Y \选择uu0000000000000000 0001.00
C:\Users\\AppData\Local\Apps\2.0\D01L7N51.9EW\R7HB7NAB.B7Y
\选择uu0000000000000000 0001.0000 92af5262ce6f49d8
而我期待的是C:/Users//Documents//+resources/config.txt
我试过了
string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Console.WriteLine(dir);
&&
&&
但我总是在appdata地图上结束 那么:
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
您可以简单地使用
Application.StartupPath
(),但结果将始终取决于您放置/安装可执行文件的位置
如果您始终希望指向当前用户的文档
文件夹(在操作系统中注册为特殊文件夹),如您的示例所示,您可以使用:
String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
或者(但风险由您自己承担,因为安全性要低得多):
使用第一种或第二种方法检索到正确的文档
文件夹路径后,请将其与最后一部分合并:
path = Path.Combine(path, "resources/config.txt");
有关这两种方法的更多信息:
String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
String path = Path.Combine(Environment.ExpandEnvironmentVariables("%userprofile%"), "Documents");
path = Path.Combine(path, "resources/config.txt");