0

我正在尝试创建一个将生成日志文件的 C# 控制台应用程序。我希望在存储日志文件的位置上有一些灵活性。

我尝试使用 Settings.settings 文件:

名称:logDrive 类型:字符串 范围:应用程序 值:C:\Scripts\Logs

在我的代码中,我正在使用:

string logFile = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
logFile = logFile.Replace(@"/", @"-").Replace(@"\", @"-") + ".log";
string logDrive = Properties.Settings.Default.logDrive;
StreamWriter output = new StreamWriter(logDrive + logFile);

编译上述内容时,我收到错误消息“不支持给定路径的格式。”

如果有帮助,以下值:

logDrive = "C:\Scripts\ServiceDesk\Logs" logFile = "3-23-2009 1:20 PM.log"

有没有人对更好的方法和/或我做错了什么有任何想法/建议?

4

2 回答 2

13

您不能:在文件名中包含 a。更好的方法可能是使用类似的格式

YYYYMMDD_HHMMSS.log

(例如20090323_231245.log

这样做的好处是易于排序,并且不使用任何无效字符。

您可以使用

string logFile = string.Format("{0:yyyyMMdd_HHmmss}.log", DateTime.Now);

笔记:

此外,正如评论中所建议的,您应该考虑使用Path.Combine来组合您的目录和文件名。这将有助于缓解尾随路径分隔符等问题。

于 2009-03-23T17:24:28.757 回答
0

您还需要在“logDrive”中添加一个斜杠。IE:

logDrive = "C:\Scripts\ServiceDesk\Logs\"

..或按照其他答案中的建议使用 Path.Combine

于 2009-03-23T17:31:18.567 回答