删除 txt 文件中早于今天日期的列表

Delete a list in txt file which are older than today's date

我的 C# 程序有一个函数,可以在程序中实时追加这个列表。我的程序是 return 值日期、名称和状态的列表。

你知道如何只附加最新时间的列表吗?

这是我的 C# 代码

System.IO.File.AppendAllText("rn_agent.txt", DateTime.Now.ToString("yyy-MM-dd HH:mm:ss") 
           + Environment.NewLine 
           +  name 
           + Environment.NewLine + status + Environment.NewLine);

rn_agent.txt

2022-05-26 13:57:29
Dannie Delos Alas
Available
2022-05-26 13:57:29
Krishian Santos
Available
2022-05-26 13:57:29
Puja Pal
Unavailable
2022-05-27 14:43:42
Maricar De Mesa
Occupied
2022-05-27 14:43:42
Pula Al
Occupied
2022-05-27 14:43:42
Marjorie Cacayan
Unavailable

您应该使用 File.WriteAllText() method instead of File.AppendAllText(),将最新数据写入文件。

var newText = $"{DateTime.Now.ToString("yyy-MM-dd HH:mm:ss")} \n {name} \n {statu} \n";
System.IO.File.WriteAllText("rn_agent.txt",newText);

File.WriteAllText() 和 File.AppendAllText() 有什么区别?

File.WriteAllText():

Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten.

File.AppendAllText():

Opens a file, appends the specified string to the file, and then closes the file.


更新:

如果您想存储今天可用的所有记录,请尝试以下代码,

var today = DateTime.Today.ToString("yyy-MM-dd HH:mm:ss");
var newTextList = new List<string>();

//Dummy foreach loop
foreach(var data in agentsData)
{
   newTextList.Add($"{today} \n {data.Name} \n {data.Status}");
}

System.IO.File.WriteAllLines("rn_agent.txt", newTextList);