我在c#中有一个控制台应用程序,由Windows任务调度程序启动。 该应用程序需要一些物理文件从它自己的目录,并使用System.IO.Directory.GetCurrentDirectory() 。
正常,当我自己启动控制台应用程序,它完美的作品。 但是当它由Windows任务计划程序启动时,它将返回C:WindowsSystem32 。
为什么这不是应用程序目录,是否有另一种方式我可以得到应用程序目录?
防止Winform被最大化?
使用凭证的UNCpath
WM_GETFONT与标准的flatstyle问题
使用BluetoothLEDevice.FromIdAsync连接到蓝牙设备会导致错误
技术防止多个login到同一台计算机
所有的.NET框架版本都包含在新的Windows版本中?
微软打破了.NET兼容性?
对多个类执行单个WMI查询,可能是?
在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] 举报,一经查实,本站将立刻删除。