我想知道是否有一种方法可以在不锁定 .txt 文件的情况下对其进行监视,并解析新附加的行以便将其发送到数据库。
我知道FileSystemWatcher
将监视 txt 文件而不锁定它,并在发生更改时通知我。问题是它没有告诉已附加的数据行。我看过的所有示例都不包括显示新添加的行或对新数据进行任何处理的部分。我的程序具有以下结构:
static void Main(string[] args)
{
//string line;
//createWatcher (FileSystemWatcher)
foreach (string line in getLines(@"C://Documents/log.txt"))
{
string teststring = line;
string[] parts = line.Split(' ', ',', '-', '>', '[', ']');
StringBuilder builder = new StringBuilder();
foreach (string h in parts)
{
builder.Append(h).Append(" ");
}
string result = builder.ToString();
string cleanedString = System.Text.RegularExpressions.Regex.Replace(result, @"\s+", " ");
string trimString = cleanedString.Trim();
trimString = trimString.Remove(trimString.Length - 7);
//Console.WriteLine(trimString);
//Process new lines (parse/split)
//Connect and send to database
}
}
所以我的目标是监控 .txt 文件而不锁定它。
- 读取此文件以获取现有数据,并等待附加数据。
- 然后我想解析这些数据并将其发送到数据库。
有谁知道如何最好地解决这个问题?或者有一个好的教程?