gpt4 book ai didi

c# - 从任务计划程序 C# 调用时,StreamWriter 不写入文件

转载 作者:可可西里 更新时间:2023-11-01 13:16:58 24 4
gpt4 key购买 nike

我有以下函数,它接受一个字符串,并将字符串内容记录到日志文件中。

private static void LogEvent(string sEvent)
{
sEvent = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "|" + sEvent;

Console.WriteLine(sEvent);

try
{
using (StreamWriter oStreamWriter = new System.IO.StreamWriter("MyService_" + DateTime.Now.ToString("yyyyMMdd") + ".log", true))
{
oStreamWriter.WriteLine(sEvent);
}
}
catch
{

}
}

当调用该函数的程序从命令行手动运行或双击可执行文件时,将创建或附加日志文件。

我遇到的问题是我已将此程序设置为每 10 分钟从任务调度程序调用一次,并且出于某种原因代码正确执行,但程序未创建或附加到日志文件。

计划任务正在使用与我手动运行程序时相同的用户权限调用程序。

为什么会发生这种情况,我该如何解决。

最佳答案

您当前正在尝试写入进程的当前工作目录 - 当它由任务计划程序执行时,它很可能类似于 C:\Windows\System32。你将无法在那里写作。

指定一个绝对文件名,我想你会没事的。不清楚您要写入的位置,但您应该仔细考虑一下 - 理想情况下,您应该将可执行文件与其生成的数据分开。考虑使用 Environment.GetFolderPath结合合适的SpecialFolder成员(例如 ApplicationData。)

请注意,使用 File.AppendAllText请注意,会使代码更简单。

关于c# - 从任务计划程序 C# 调用时,StreamWriter 不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com