我有一个.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");
答案 0 :(得分:3)
没有。文本是文本,它存储为二进制数据。操作系统或框架在文件中都有记录,行或日期的概念。它只知道文件的创建时间以及上次修改的时间。
如果要为文件中的某些单词指定含义,则必须读取文件的内容并对其进行解析,以便将该含义从文件中取出。操作系统或框架对您没有帮助。
看起来你真的想要一个数据库。
答案 1 :(得分:2)
从我的角度来看,如果你需要处理大文件,并查询日期,我的建议是切换到SQLite(在c#上得到很好的支持)。
但是,您可以使用FileInfo跟踪文件的大小,并很快重新打开与新长度相比较(这只适用于固定长度的记录。)
添加新记录=(currentLenght - lastLenght)/ recordSize
但无法直接查询二进制文件中的日期