如何在保存csv文件时以只读模式打开?

tag5nh1u  于 2023-06-03  发布在  其他
关注(0)|答案(2)|浏览(421)

在C#中,我的程序创建 *.csv文件。并每隔1 ms将数据附加到此文件。虽然追加数据,当我打开 .csv文件,出现此错误我只是想打开“只读模式”,而追加数据在此文件中。
/
创建文件 */

using (FileStream fileStream = new FileStream(csvFileName, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (StreamWriter sr = new StreamWriter(fileStream))
                {
                    for (int i = 0; i < 20; i++)
                    {
                        dataArray[i] = data[i];
                    }
                }
            }

/* 数据更新 */

using (FileStream fileStream = new FileStream(csvFileName, FileMode.Append, FileAccess.Write, FileShare.Read))
            {
                using (StreamWriter sr = new StreamWriter(fileStream))
                {
                    sr.Write(csv_count++ + ",");
                    for (int i = 0; i < 20; i++)
                    {
                        dataArray[i] = data[i].ToString();
                    }
                    sr.Write(string.Join(",", dataArray));
                }
            }

当我打开此 *.csv文件时,弹出此消息。“System.IO.IOException:'' D:\data.csv'进程无法访问该文件,因为它正被另一个进程使用。'

uidvcgyl

uidvcgyl1#

允许在另一个程序使用文件时以读模式打开文件。

  • update / FileMode.Append、FileAccess.Write、FileShare.Read
  • 打开时/ FileMode.Open、FileAccess.Read、FileShare.Read
9jyewag0

9jyewag02#

基本上,您是同时在文件上阅读和写入。当你阅读一个文件时,除非你用FileShare.ReadWrite打开流,否则文件将被锁定。否则,当您在其上写入时,该文件也将被锁定。
正确的FileShare值为FileShare.ReadWrite
查看MSDN文档了解详细信息。https://learn.microsoft.com/en-us/dotnet/api/system.io.fileshare?view=net-7.0

相关问题