2015-12-19 60 views
2

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

回答

3

編號文本是文本,它被存儲爲二進制數據。操作系統和框架在文件中都有記錄,行或日期的概念。它只知道文件何時被創建,以及最後一次修改的時間。

如果要爲文件中的某些詞賦予含義,則必須讀取文件的內容並對其進行解析以將該含義從文件中取出。操作系統或框架在這裏不會幫助你。

它看起來像你實際上想要一個數據庫。

+0

謝謝老兄:) –

2

從我的角度來看,如果您需要處理大文件和查詢日期,我的建議是切換到SQLite(在c#上得到很好的支持)。

但是你能跟上的FileInfo,很快你的文件重新大小的軌跡比較新的長度(這將僅適用於定長記錄。)

新記錄添加=(currentLenght - lastLenght) /塊記錄

但是沒有辦法直接查詢日期在二進制文件

+0

謝謝老兄:) –