c# – 在MS Excel中打开文件时无法写入文件

我正在给文本文件写一些数据.我正在使用此代码:

  using (FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
  {
      using (TextWriter tw = new StreamWriter(fs))
      {
      tw.WriteLine("sample_data");
      }
   }

当记事本打开文件时,我的应用程序可以写入其中.当MS Excel打开此文件时,我收到以下错误:进程无法访问文件myfile.csv,因为它正由另一个进程使用.什么可能导致这种情况,我该如何解决这个问题?

解决方法:

记事本打开文件,读入整个内容,然后关闭文件.您甚至可以删除在记事本中打开的文件.

另一方面,只要显示文件,Excel就会保持文件打开状态.可以在Excel中为excel格式文件启用一些特殊的共享工具.在那种情况下,我认为它是非普通的打开.否则Excel将独占打开文件并保持打开状态.

如果在独占模式下其他人已经打开了该文件,则在打开时指定共享选项并不重要.

上一篇:c# – 为什么FileStream.Close()会挂起很长时间?


下一篇:c# – 使用反应式编程写入打开FileStream