使用任务计划程序找不到文件

时间:2014-01-31 09:13:30

标签: c# scheduled-tasks

在我的 C#代码中,我引用了一个XML文件“file.xml”,它与可执行文件本身位于同一目录中,使用XmlDocument。

应用程序在VS中运行得非常好,但是当我尝试使用任务计划程序运行应用程序时,我得到System.IO.FileNotFoundException,即使所有内容都相同。

我使用@".\file.xml"引用该文件。这是特定于任务计划程序的一些奇怪的东西吗?使用适当的权限。

4 个答案:

答案 0 :(得分:17)

尝试为任务设置启动目录。您可以在任务计划程序中进行设置。

Select Task -> Right Click -> Properties -> Actions Tab -> Select Action -> Edit -> Start in (optional)

答案 1 :(得分:6)

我遇到了同样的问题,我试图打印出.Net为程序设置的各种路径,这是我机器上的结果

AppDomain.CurrentDomain.BaseDirectory: <my program folder>
Directory.GetCurrentDirectory();: C:\Windows\system32
Environment.CurrentDirectory: C:\Windows\system32

因此您可能希望使用AppDomain.CurrentDomain.BaseDirectory找到您的文件,如下所示:

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file.xml");
// use this path to open xml and do your work with it

答案 2 :(得分:0)

您需要将应用程序的当前工作目录设置为正确的路径。我不知道Task Scheduler启动你的应用程序时它是什么,但是假设它绝不是一个好主意。

您可以使用Directory.SetCurrentDirectory()完成此操作。

或者,您可以使用绝对路径到XML文件。

答案 3 :(得分:0)

尝试使用

参考您的文档
Application.StartupPath(@"\file.xml")