当我写一个文件,并替换包含在文件中的字符串我得到这个错误,我不知道如何解决这个问题:我是否低效使用StreamReader? - “System.IO.IOException”出现在mscorlib.dll
该进程无法访问文件'C:\ WarThunder \ config.blk',因为它正在被另一个进程使用。
我试过关闭所有我已经打开的可以托管这些文件数据的东西,但是我有一种感觉,这可能是我对代码的低效使用造成的。这以前不是问题。我不记得从何时冒出了:/
下面的代码重复每一次对其他两个复选框:
private void rdbDX11_CheckedChanged(object sender, EventArgs e)
{
if (rdbDX11.Checked == true)
{
pbOGL3Outer.Visible = false;
pdDX11Outer.Visible = true;
pdDX9Outer.Visible = false;
rdbDX9.Checked = false;
rdbOGL3.Checked = false;
Properties.Settings.Default.varRenderSelected = ("DirectX11");
using (StreamReader ReadConfig = new StreamReader(Properties.Settings.Default.SavedConfig))
{
while (ReadConfig.Peek() != 1) //While not end of file
{
var ReWriteFile = File.ReadAllText(Properties.Settings.Default.SavedConfig);
if (ReWriteFile.Contains(" driver:t=\"dx9\""))
{ ReWriteFile = ReWriteFile.Replace(" driver:t=\"dx9\"", " driver:t=\"dx11\""); }
else if (ReWriteFile.Contains(" driver:t=\"gl3\""))
{ ReWriteFile = ReWriteFile.Replace(" driver:t=\"gl3\"", " driver:t=\"dx11\""); }
else if (ReWriteFile.Contains(" driver:t=\"auto\""))
{ ReWriteFile = ReWriteFile.Replace(" driver:t=\"auto\"", " driver:t=\"dx11\""); }
System.IO.File.WriteAllText(Properties.Settings.Default.SavedConfig, ReWriteFile);
}
}
}
}
阅读整个文本'var ReWriteFile = File.Re adAllText'编辑它然后写它:'File.WriteAllText(...'。请勿全部使用StreamReader –
谢谢!修复 :) – Lewis