gpt4 book ai didi

c# - 什么会导致此代码产生文件锁定错误?

转载 作者:行者123 更新时间:2023-11-30 14:42:03 24 4
gpt4 key购买 nike

下面的代码在 while 循环中写入一个文本文件,有时它会产生一个错误,指出“该进程无法访问该文件,因为它正在被另一个进程使用”等等……”该错误通常发生在“使用(FileStream fs = File.OpenRead(filePath))”有没有一种方法可以检查文件是否不再被使用,或者有一种方法可以正确处理文本编写器?

 if (File.Exists(filePath))
{
TextWriter sud = File.AppendText(filePath);
sud.WriteLine(GenericLIST[testloop].ToString());
sud.Close();
sud.Dispose();
using (FileStream fs = File.OpenRead(filePath))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
richTextBox1.AppendText(sr.ReadLine());
}
}
}
}

else
{

TextWriter sud = new StreamWriter(filePath);
sud.WriteLine(GenericLIST[testloop].ToString());
sud.Close();
sud.Dispose();
}

最佳答案

我一直使用:

using (StreamReader reader = new StreamReader(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
{
}

根据 MSDN , File.OpenRead 等同于:

new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)

(区别在于 Read 与 ReadWrite 的 FileShare)

关于c# - 什么会导致此代码产生文件锁定错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3485123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com