因为问题说我有一个程序设置为从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。
答案 0 :(得分:2)
"cd.txt"
等文件路径始终相对解释。通常它们被解释为相对于当前工作目录。当你刚刚执行你的程序时,例如从Windows资源管理器中,工作目录是可执行文件的位置。因此,它将直接在应用程序旁边查找文件。
但是,当以不同的方式执行时,工作目录很可能是非常不同的。因此,如果您希望文件位于可执行文件旁边,则应更改程序以在那里查找。例如:
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cd.txt")
bool cdexist = File.Exists(filePath);
// …
检查this question以获取获取正确目录的其他方法。