如何获取最后插入的记录

时间:2015-12-19 16:26:42

标签: c# .net file c#-4.0 logging

我有一个.txt日志文件,其中有一些记录会在分钟的基础上附加到文件中。一分钟内追加的记录数是动态的。即,如果在一分钟内,它附加2条记录,那么在下一分钟,可能会添加5条记录。文件内容如下所示

"2015-Dec-19 02:00:00 AM", "Apple"
"2015-Dec-19 02:00:00 AM", "Orange"
"2015-Dec-19 02:01:00 AM", "Carrot"
"2015-Dec-19 02:01:00 AM", "Onion"
"2015-Dec-19 02:01:00 AM", "Beans"
"2015-Dec-19 02:01:00 AM", "Banana"
"2015-Dec-19 02:01:00 AM", "Apple"

展望未来,文件的大小将变得很大,并且很难过滤记录。在C#中我是否可以从文件属性中找到,在没有打开文件的情况下上次添加了多少条记录?即,在上面的例子中,在2015-Dec-19 02:01:00 AM添加了5条记录。所以我需要把数量计算为5.

我只知道如何使用以下代码获取文件属性,但不知道如何从代码中填写我的要求。

FileInfo fileInfo = new FileInfo("C:\Demo.txt");

2 个答案:

答案 0 :(得分:3)

没有。文本是文本,它存储为二进制数据。操作系统或框架在文件中都有记录,行或日期的概念。它只知道文件的创建时间以及上次修改的时间。

如果要为文件中的某些单词指定含义,则必须读取文件的内容并对其进行解析,以便将该含义从文件中取出。操作系统或框架对您没有帮助。

看起来你真的想要一个数据库。

答案 1 :(得分:2)

从我的角度来看,如果你需要处理大文件,并查询日期,我的建议是切换到SQLite(在c#上得到很好的支持)。

但是,您可以使用FileInfo跟踪文件的大小,并很快重新打开与新长度相比较(这只适用于固定长度的记录。)

添加新记录=(currentLenght - lastLenght)/ recordSize

但无法直接查询二进制文件中的日期