在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'进程无法访问该文件,因为它正被另一个进程使用。'
2条答案
按热度按时间uidvcgyl1#
允许在另一个程序使用文件时以读模式打开文件。
9jyewag02#
基本上,您是同时在文件上阅读和写入。当你阅读一个文件时,除非你用
FileShare.ReadWrite
打开流,否则文件将被锁定。否则,当您在其上写入时,该文件也将被锁定。正确的FileShare值为
FileShare.ReadWrite
。查看MSDN文档了解详细信息。https://learn.microsoft.com/en-us/dotnet/api/system.io.fileshare?view=net-7.0