读取和写入相同的csv文件

时间:2018-12-25 00:10:41

标签: c# csv

我有一个CSV文件(例如Directories.csv),其中包含大量目录。我正在使用streamreader从CSV循环浏览目录并执行一些任务。我正在将完整的目录列表更新为词典,并停留在此步骤。

询问::我想通过相同CSV 中完整目录的循环来捕获数据,以防万一应用程序崩溃或服务器重启,以便我不必再次重复完成的循环。 (或)从CSV删除完成的目录行

我试图在线检查建议,并要求创建临时文件并移动其副本。如果服务器重新启动或应用程序崩溃,是否可以这样做?请提出我该如何推进。

我的代码:

  Dictionary<string, string> directoryDictionary = new Dictionary<string, string>();
  using (FileStream fileStreamDirectory = File.Open(outputdir + "\\Directories.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
  using (BufferedStream bufferStreamDirectory = new BufferedStream(fileStreamDirectory))
  using (StreamReader streamReaderDirectory = new StreamReader(bufferStreamDirectory))
  {
      while ((Directoryline = streamReaderDirectory.ReadLine()) != null)
      {
        #Doing the task here
        directoryDictionary.Add(Directoryline, "Completed");
      }
  }

1 个答案:

答案 0 :(得分:3)

您无法真正将数据插入middle of a text file中(除非它是固定宽度格式,而CSV格式则不是)。

两个选项:

  • 读取到内存,更新内存中的数据,将整个表重写回文件(如果写入失败,则可能需要保留以前的版本)
  • 使用满足您条件的数据库并导入CSV以供使用。