gpt4 book ai didi

c# - 另一个进程正在使用文件流

转载 作者:太空狗 更新时间:2023-10-30 00:05:38 24 4
gpt4 key购买 nike

FileStream f=new FileStream("c:\\file.xml",FileMode.Create);
StreamWriter sf=new StreamWriter(f);
sf.WriteLine(stroka);
sf.Close();
sf.Dispose();
f.Close();
f.Dispose();
FileStream f1=new FileStream("c:\\file.xml",FileMode.Open);
StreamReader sr=new StreamReader("c:\\file.xml");
xmlreader=new XmlTextReader(sr);
sr.Close();
sr.Dispose();
f1.Close();
f1.Dispose();

我收到这个错误:

The process cannot access the file 'c:\file.xml' because it is being used by another process

我已经关闭所有并处置所有。有什么问题?

最佳答案

替换:

StreamReader sr=new StreamReader("c:\\file.xml");

与:

StreamReader sr=new StreamReader(f1);

您正在创建没有 FileStream 的新 StreamReader


附加数据:

  • StreamReader.Dispose 被调用时,StreamReader 对象在提供的 Stream 对象上调用 Dispose

    <
  • Dispose 方法调用 Close 方法。阅读this了解更多信息。

含义:你可以移除你在FileStream上写的DisposeClose

FileStream f = new FileStream("c:\\file.xml", FileMode.Create);
StreamWriter sf = new StreamWriter(f);
sf.WriteLine(stroka);
sf.Dispose();

FileStream f1 = new FileStream("c:\\file.xml", FileMode.Open);
StreamReader sr = new StreamReader(f1);
xmlreader = new XmlTextReader(sr);
sr.Dispose();

但您真的应该对非托管资源使用using 语句,阅读this .

关于c# - 另一个进程正在使用文件流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824771/

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