我正在尝试创建一个生成日志文件的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"
有没有人对更好的方法和/或我做错了什么有任何想法/建议?
您不能:
在文件名中包含a .更好的方法可能是使用像这样的格式
YYYYMMDD_HHMMSS.log
(例如20090323_231245.log
)
这具有易于排序的优点,并且不使用任何无效字符.
你可以使用它
string logFile = string.Format("{0:yyyyMMdd_HHmmss}.log", DateTime.Now);
笔记:
此外,正如评论中所建议的那样,您应该考虑使用Path.Combine
组合目录和文件名.这将有助于缓解尾随路径分隔符等问题.