我正在阅读和写一些文本文件,而我目前正在使用设置路径。如何更改该设置路径以使用可执行文件所在的同一文件夹?
例如:
File.ReadLines(@"D:\Users\MyUserName\Desktop\MyApplication\names.txt").Skip(1).ToList();
和...
File.WriteAllLines(@"D:\Users\MyUserName\Desktop\MyApplication\names.txt", lines);
和...
using (StreamWriter writer = new StreamWriter(@"D:\Users\MyUserName\Desktop\MyApplication\names.txt", true))
{
writer.WriteLine(myText);
}
在IDE(Visual Studio)中进行测试时,它也需要工作。
答案 0 :(得分:4)
路径相对于当前工作目录。在IDE中运行时,它将是可执行文件所在的目录。否则,它通常是您启动程序的目录。
因此,如果当前目录(在命令行上)是C:\ foo并输入命令“C:\ bar \ myprogram.exe”,则程序将以C:\ foo开头,如果您尝试打开文件“fooby.txt”,它将查找“C:\ foo \ fooby.txt”。
有关如何获取可执行文件路径的信息,请参阅How do I get the name of the current executable in C#?。
答案 1 :(得分:1)
Assembly.GetEntryAssembly().Location
如果你在winforms app中,你可以使用
System.Windows.Forms.Application.StartupPath
默认情况下,它会指向当前目录,如@JimMischel所说。
因此,最好避免使用像File.ReadLines("names.txt");
这样的文件名,而是提供完整的文件路径。
答案 2 :(得分:0)
您还可以使用Environment.CurrentDirectory
获取当前的应用程序文件夹
查看LINK了解更多详情