我已经制作了一个小型控制台应用程序(首先在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地图上结束。
答案 0 :(得分:0)
怎么样:
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
答案 1 :(得分:0)
您可以简单地使用Application.StartupPath
(reference),但结果将始终取决于您放置/安装可执行文件的位置
如果您始终想要指向当前用户的Documents
文件夹(在操作系统中注册为特殊文件夹),就像在您的示例中一样,您可以使用:
String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
或(但由于其安全性较低,因此风险自负):
String path = Path.Combine(Environment.ExpandEnvironmentVariables("%userprofile%"), "Documents");
使用第一种或第二种方法检索到正确的Documents
文件夹路径后,将其与最后一部分结合使用:
path = Path.Combine(path, "resources/config.txt");
有关这两种方法的更多信息: