【问题标题】:program searching wrong directory for config file when run from task scheduler从任务计划程序运行时,程序搜索配置文件的错误目录
【发布时间】:2014-08-19 04:32:59
【问题描述】:

我有一个 C# 表单应用程序。它在加载时打开一个文本文件。从这个文本文件中读取默认设置。然后它用默认数据填充numericupdown 字段和textbox 字段。

我想在每晚的特定时间运行它。 windows 任务似乎正在尝试打开程序。但是,在加载时它会得到一个FileNotFoundException Could not find file 'C:\Windows\system32\Settings.txt,它离我的应用程序运行文件夹很远。从命令行运行并在 MVS2013 中使用 run 时,它会正确打开。

在我的程序中,我正在使用相对路径搜索这个文件

有人能解释一下这种荒谬吗?我将不胜感激。

【问题讨论】:

  • AFAIK 您可以设置 工作目录 或与任务相关的东西...做它

标签: c# task filenotfoundexception path-finding


【解决方案1】:

您的路径是相对于工作目录的,如果您没有指定,它似乎是“C:\Windows\system32”。因此可能的解决方案是将工作目录设置为可执行文件的目录(“开始于(可选)”字段):

.. 或修改您的程序以使用可执行文件的绝对路径 (you can get the absolute path programmatically)。

【讨论】:

  • 我计划在某个时候将其部署给客户。它们都将使用不同的目录,因此绝对路径有点不可能。但是我计划为他们提供一个教程来自动化程序。我将简单地指示他们填写工作目录。谢谢!
  • 运行时根据exe文件当前位置确定的可执行文件的绝对路径。需要明确的是,如果可执行文件移动到不同的目录,路径将会改变。所以我不明白为什么它不是一个选项......无论如何,不​​客气
猜你喜欢
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 2014-06-19
  • 2020-08-07
  • 2020-10-25
相关资源
最近更新 更多