首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么会导致此代码产生文件锁定错误?

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

Stack Overflow用户
提问于 2010-08-15 05:11:28
回答 4查看 1.6K关注 0票数 3

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

代码语言:javascript
复制
 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();
                    }
EN

Stack Overflow用户

发布于 2010-08-15 05:20:32

这里发生的情况是,您释放了您附加的文件以再次读取它。

sud.Close()using(FileStream fs = File.OpenRead(filePath))之间,您的计算机上运行的任何其他进程都可以查看并锁定您的文件。索引服务或防病毒程序经常会对此负责。

尝试在文件夹上禁用索引,看看您的bug是否仍然如此频繁地发生。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3485123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档