微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当Windows任务计划程序启动程序时如何获取应用程序文件夹

我在c#中有一个控制台应用程序,由Windows任务调度程序启动。 该应用程序需要一些物理文件从它自己的目录,并使用System.IO.Directory.GetCurrentDirectory() 。

正常,当我自己启动控制台应用程序,它完美的作品。 但是当它由Windows任务计划程序启动时,它将返回C:WindowsSystem32 。

为什么这不是应用程序目录,是否有另一种方式我可以得到应用程序目录?

防止Winform被最大化?

使用凭证的UNCpath

WM_GETFONT与标准的flatstyle问题

使用BluetoothLEDevice.FromIdAsync连接到蓝牙设备会导致错误

技术防止多个login到同一台计算机

所有的.NET框架版本都包含在新的Windows版本中?

微软打破了.NET兼容性?

对多个类执行单个WMI查询,可能是?

如何显示文件属性对话框安全选项卡从C#

在C#中创build一个类对象

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

System.IO.Directory.GetCurrentDirectory()将返回执行过程的当前目录,这不是你的应用程序在这种情况下。 上面的代码就可以得到你的可执行文件正在运行的执行目录。

GetCurrentDirectory返回该目录,因为当调度程序认启动应用程序时。 如果你想知道你的二进制文件所在的目录,你可以使用

Assembly.GetExecutingAssembly().Location

我也很想知道你的计划任务中是否有一个“Start In”目录 – 设置应该在启动时设置应用程序的当前目录。

Assembly.GetExecutingAssembly().Location

另请参阅GetCallingAssembly()和GetEntryAssembly() 。

什么是确定应用程序根目录的最佳方式?

你能试试这个回报吗?

System.IO.Path.GetDirectoryName(Application.ExecutablePath)

我使用My.Application.Info.DirectoryPath是指向正确的目录,你想在Windows任务调度程序。

它是一个古老的线程,但是对于正在设置任务的人来说,你可以通过设置可选项:“开始”到你的exe文件夹中的值来指定任务的动作中的位置,GetCurrentDirectory将正常工作。

AppDomain.CurrentDomain.BaseDirectory如果要使用与安装目录相关的文件,将获取目录。

另请参阅获取应用程序文件夹路径的最佳途径

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐