【问题标题】:How to get last inserted records如何获取最后插入的记录
【发布时间】:2015-12-19 16:26:42
【问题描述】:

我有一个.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");

【问题讨论】:

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


    【解决方案1】:

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

    如果您想为文件中的某些单词赋予含义,则必须读取文件的内容并对其进行解析以从文件中恢复该含义。操作系统或框架在这里帮不了你。

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

    【讨论】:

      【解决方案2】:

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

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

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

      但是没有办法直接查询二进制文件中的日期

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多