程序在启动时不会读取文本文件,但是在启动时它会执行吗?

时间:2016-02-14 01:02:48

标签: c#

因为问题说我有一个程序设置为从Windows启动开始,但它没有读取它旁边的.txt,当我启动程序时。

bool cdexist = File.Exists("cd.txt");
if (cdexist)
{
   StreamReader sr = new StreamReader("cd.txt");
   time = Convert.ToInt32(sr.ReadLine());
   sr.Close();
   if (time != 0)

   {}.....rest of the code 

可能是什么问题?

编辑:我写入文件的部分

{

 timeleft = time - i;
 label1.Text = timeleft.ToString();
 StreamWriter sw = new StreamWriter("cd.txt");
 sw.Write(timeleft);
 sw.Close();

 i++;

}

EDIT 我无法解决这个问题,我尝试重新创建PC启动时发生的事情,一旦我在桌面上,我启动程序并且它正在工作,但是当系统自动使用Windows时它看起来不像阅读.txt。

1 个答案:

答案 0 :(得分:2)

"cd.txt"等文件路径始终相对解释。通常它们被解释为相对于当前工作目录。当你刚刚执行你的程序时,例如从Windows资源管理器中,工作目录是可执行文件的位置。因此,它将直接在应用程序旁边查找文件。

但是,当以不同的方式执行时,工作目录很可能是非常不同的。因此,如果您希望文件位于可执行文件旁边,则应更改程序以在那里查找。例如:

string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cd.txt")
bool cdexist = File.Exists(filePath);
// …

检查this question以获取获取正确目录的其他方法。