目前,我的程序每小时创建一个新的日志文件,文件名为当前日期和当前小时。
有两个缺点
1.例如,我运行程序3小时20分钟,并希望在一个单一的文件中有该持续时间的csv日志数据,但与目前的逻辑,它创建4个单独的csv文件。
1.如果上一个会话的结束和新会话的开始恰好在同一小时内,即使我希望获得新会话的单独csv日志数据,它也只是附加到现有文件中。
有没有什么方法可以摆脱这两个问题,但同时保持文件名,因为我现在正在做的?
outputFilePath = csv_directory + CurrentDate + "\\" + CurrentDate + "_" + CurrentHour + ".csv";
if (File.Exists(outputFilePath) == false)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(outputFilePath, true))
{
// Write File
// Column Header
// Data
}
}
else if (File.Exists(outputFilePath))
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(outputFilePath, true))
{
// Write File
// Data
}
}
2条答案
按热度按时间7rtdyuoh1#
尝试以下解决方案
不要编辑用于每小时保存CSV文件的代码。代码仅用于每小时保存CSV文件。
下面👇是获取CSV文件的具体时长
1.首先在代码中创建单独代码,然后输入获取CSV文件的持续时间
然后找到保存该持续时间的CSV文件,从这些CSV文件中获取数据,创建新的CSV文件并插入到该新文件中
因此,使用这个解决方案,如果你想要任何持续时间的CSV文件,你会得到&你也有每小时的CSV文件。
ibrsph3r2#
您可以在
Main
方法中创建文件,并将路径存储在全局可访问的位置,例如然后,您可以调用
File.AppendAllText
或File.AppendAllLines
,在需要的位置和时间写入文件,使用Program.logFilePath
作为文件路径。您甚至可以创建自己的专用类,其中包含文件路径并具有执行写入的方法,但我将把这些留给您。