在关闭动态更改文本文件的应用程序之前,streamreader不会更新其内容

问题描述 投票:-1回答:2
      using (var fs = new FileStream(@"C:\Users\darren\Contacts\Desktop\staffs.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
        using (var sr = new StreamReader(fs, Encoding.Default))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    list.Add(line); // Add to list.

                }
                sr.Close();
                fs.Close();

            }

代码工作正常,直到我打开使用此文本文件的其他应用程序。谢谢

c# text-files streamreader
2个回答
0
投票

您可能正在处理锁定问题或者它可能与缓冲区有关,您可以尝试使用.flush()来查看是否有帮助。但最初的评论是正确的,文本文件对于多应用程序功能来说是不可靠的...你可以尝试类似LiteDb的东西,这可能会有所帮助......


0
投票

代码工作正常,直到我打开使用此文本文件的其他应用程序

文件共享和访问设置仅确定您的流程如何愿意与他人共享。其他进程可以并且仍将要求锁定其打开的文件句柄。如果另一个进程锁定了该文件,则必须等到它被释放。没有追索权。

© www.soinside.com 2019 - 2024. All rights reserved.