我正在使用File.ReadAllText(“filename.txt”)读取文件。此文件位于.exe文件所在的文件夹(c:/ program files / installation folder)中。但默认情况下,Windows应用程序会查看此文件的System32文件夹。
**我不想硬编码文件的路径。
答案 0 :(得分:8)
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
给出exe的目录。 因此,使用Path.Combine将获得所需的结果:
string filenamelocation = System.IO.Path.Combine(path, "filename.txt");
答案 1 :(得分:6)
尝试此功能:
using System.Reflection;
private string MyDirectory()
{
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
然后使用
File.ReadAllText(MyDirectory() + @"\filename.txt");
答案 2 :(得分:3)
更短
File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "filename.txt");
答案 3 :(得分:1)
所以你需要你的应用程序的目录? 在这种情况下,SO上已有一些好的答案,例如: