如何使用c#从应用程序的安装文件夹读取文件?
问题描述:
我正在使用File.ReadAllText(“filename.txt”)读取文件。该文件位于.exe文件所在的非常相同的文件夹中(c:/ program files/installation文件夹)。但Windows应用程序默认查看System32文件夹中的这个文件。如何使用c#从应用程序的安装文件夹读取文件?
**我不想硬编码文件的路径。
答
试试这个功能:
using System.Reflection;
private string MyDirectory()
{
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
然后使用
File.ReadAllText(MyDirectory() + @"\filename.txt");
答
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
给出exe的目录。 因此,使用与Path.Combine将得到期望的结果:
string filenamelocation = System.IO.Path.Combine(path, "filename.txt");
答
所以,你需要你的应用程序的目录? 在这种情况下,也有一些很好的答案已经在SO,例如:
答
短了很多
File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "filename.txt");
这个'exe'是如何启动的?也许有什么修改当前的工作目录? – 2010-04-28 15:22:34
它的Windows服务...总是运行....只是计划根据指定的时间调用某些任务。 – Jango 2010-04-28 15:27:31