Eri*_*ker 18 .net c# windows scheduled-tasks
我在c#中有一个控制台应用程序,它由Windows任务调度程序在学习时间开始.该应用程序需要来自其自己目录的一些物理文件并System.IO.Directory.GetCurrentDirectory()用于此目的.
正常情况下,当我自己启动控制台应用程序时,它运行正常 但是当它由Windows任务计划程序启动时,它返回C:\Windows\System32.
为什么这不是应用程序目录,还有另外一种方法可以获取应用程序目录吗?
Aar*_*ver 28
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Run Code Online (Sandbox Code Playgroud)
System.IO.Directory.GetCurrentDirectory()将返回执行进程的当前目录,该目录不是此实例中的应用程序.以上内容足以获取运行可执行文件的执行目录.
GetCurrentDirectory返回该目录,因为默认情况下调度程序启动应用程序时。如果你想知道你的二进制文件所在的目录,你可以使用
Assembly.GetExecutingAssembly().Location
Run Code Online (Sandbox Code Playgroud)
我也很想知道您是否在计划任务中设置了“开始于”目录 - 设置也应该在应用程序启动时设置它的当前目录。
它是一个旧线程,但对于寻找的人来说,在设置任务时,您可以通过将可选的 :Start in" 值设置为您的 exe 文件夹,在任务的操作中分配位置。然后 GetCurrentDirectory 就可以正常工作了。
| 归档时间: |
|
| 查看次数: |
9625 次 |
| 最近记录: |