C# 如何连续读取文本文件

C# 如何连续读取文本文件,c#,text-files,filesystemwatcher,file-handling,C#,Text Files,Filesystemwatcher,File Handling,我有一个文本文件,每次都会从服务器数据中更新。现在,根据我的要求,我必须逐行连续读取此文件。我知道如何逐行读取文件,但不知道如何连续读取。这是我逐行读取文件的c代码 if (System.IO.File.Exists(FileToCopy) == true) { using (StreamReader reader = new StreamReader(FileToCopy)) { string l

我有一个文本文件,每次都会从服务器数据中更新。现在,根据我的要求,我必须逐行连续读取此文件。我知道如何逐行读取文件,但不知道如何连续读取。这是我逐行读取文件的c代码

if (System.IO.File.Exists(FileToCopy) == true)
        {

            using (StreamReader reader = new StreamReader(FileToCopy))
            {
                string line;
                string rawcdr;

                while ((line = reader.ReadLine()) != null)
                {
                   //Do Processing
                }
              }
         }
根据我的要求,我必须不断观察文本文件的变化。假设文本文件中添加了新行,则在添加新行时,应使用上述定义的代码读取,并根据条件执行处理

您可以使用侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。如果文本追加到文本文件中但未修改,则可以跟踪已读取的行号,并在触发更改事件后继续

private int ReadLinesCount = 0;
public static void RunWatcher()
{
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = "c:\folder";   
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;   
    watcher.Filter = "*.txt";    
    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.EnableRaisingEvents = true;

}

private static void OnChanged(object source, FileSystemEventArgs e)
{
      int totalLines - File.ReadLines(path).Count();
      int newLinesCount = totalLines - ReadLinesCount;
      File.ReadLines(path).Skip(ReadLinesCount).Take(newLinesCount );
      ReadLinesCount = totalLines;
}

作为参考,UNIX实用程序实现了这一点。他们称之为“跟踪”一个文件。可能的副本您必须在更改事件时读取文件,每次更改文件时,您都将获得该事件。我已经给出了绑定事件和读取行的代码,您必须给出读取行和需要在skip and take方法中读取的行。NewLinesCount在开始时为零,然后您必须在每次读取行时更新它。它就像书签。NewLinesCount将是总行数-NewLinesCount ReadLinesCount呢?将其声明为数据成员并用零初始化,检查我的更新代码您必须给出文件夹路径,我猜,将文件放入某个文件夹并给出该文件夹的路径。