【发布时间】:2015-02-12 11:22:21
【问题描述】:
我有一个 C# 桌面应用程序,它应该在运行时创建并写入一个文本文件。这个应用程序假设每天早上 9:00 运行,所以我在 windows 任务调度程序中创建了一个任务来运行这个程序。从 Windows 任务计划程序运行时,应用程序工作正常,除了创建任何文本文件。但是如果我关闭应用程序并通过双击重新运行,那么它会相应地创建文本文件。
这是我的文本文件编写代码:
public void process_log(string str, string logtype)
{
try
{
string myFile = null;
string myDate = DateTime.Now.Date.ToString("yyyyMMdd");
string myDir = null;
switch (logtype)
{
case "process":
myDir = "logs\\process\\";
break;
case "err":
myDir = "logs\\err\\";
break;
case "URLSTR":
myDir = "logs\\URLSTR\\";
break;
case "MOMT":
myDir = "logs\\MOMT\\";
break;
default:
myDir = "logs\\";
break;
}
myFile = myDir + myDate + ".txt";
StreamWriter sw = default(StreamWriter);
DirectoryInfo dir = new DirectoryInfo(myDir);
if (dir.Exists == false)
{
Directory.CreateDirectory(myDir);
}
if (File.Exists(myFile))
{
sw = File.AppendText(myFile);
}
else
{
sw = File.CreateText(myFile);
}
sw.WriteLine(str);
sw.Close();
}
catch (Exception ex)
{
str = DateTime.Now.ToString("HH:mm:ss") + ex.Message;
process_log(str, "err");
str = ex.StackTrace;
process_log(str, "err");
}
}
这个问题变得非常严重,因为我们每天都找不到任何日志文件。 请帮忙,谢谢。
【问题讨论】:
-
我会检查权限并尝试使用绝对路径。
-
现在将包括异常在内的每个步骤记录到 EventViewer 中,看看是否有任何收获。
-
你明白了吗?即使我已经给予了所有人的完全许可,我也遇到了同样的问题?
-
是的,我必须添加文本文件位置的完整路径,现在它运行良好。