【发布时间】:2017-03-20 12:20:12
【问题描述】:
我有一些使用绝对路径来识别文件位置的 C# 代码。当我调试代码时,路径仍然是绝对的(使用 Console.WriteLine 确认)。当代码从 Windows 任务计划程序启动时(在触发时),路径显示为相对路径(再次由 Console.WriteLine 确认)。但是,如果我尝试直接运行代码(使用 compiles exe 或从任务计划程序启动),路径将再次显示为绝对路径!
我是这样称呼路径的:
string path = Directory.GetCurrentDirectory();
string strSCPath = path + @"\Scorecards";
string filePath = strSCPath + @"\" + file + ".txt";
以及我如何验证相对/绝对条件:
Console.WriteLine("Filepath defined as: {0}", filePath");
当我使用任务计划程序运行时:
Filepath defined as .\Scorecards\file.txt
但是手动运行:
Filepath defined as D:\Users\Files\Scorecards\file.txt
我的代码或任务计划程序本身是否有设置我未能正确设置会导致上述情况?
【问题讨论】:
-
“我有一些 C# 代码”。你真的需要分享这个问题中的代码......
-
如果你是从当前目录开始,你有没有确保当前目录在启动时设置正确?跨度>
-
是的 - 我确保任务计划程序中的“开始于”字段是 D:\Users\Files”。此外 - 我可以从任务计划程序手动启动而无需切换到相对路径- 似乎表明代码应该按设计工作......我想知道这是否是 Windows 问题......
-
任务是否以您正在测试的同一用户身份运行?
标签: c# scheduled-tasks relative-path absolute-path