且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

错误:帮助 D:System.IO.IOException:进程无法访问该文件,因为它正被另一个进程使用

更新时间:2023-01-31 17:44:13

以下代码不会关闭读取器 - 它会再次关闭写入器.即使它有效,它也会在您真正阅读之前关闭阅读器.

The following code does not close the reader - it closes the writer again. Even if it worked it would close the reader before you actually read.

System.IO.StreamReader fileUsername = new System.IO.StreamReader("C:\\Users\\Public\\Usernames.txt");
file.Close();
string retrievedUsername = fileUsername.ReadToEnd();
file.Close();

你应该让你的代码看起来像这样:

You should make your code look like this:

using (System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\Users\\Public\\Usernames.txt"))
{
    file.WriteLine();
}

int userType = 0;
string retrievedUsername = String.Empty;

using (System.IO.StreamReader fileUsername = new System.IO.StreamReader("C:\\Users\\Public\\Usernames.txt"))
{
    retrievedUsername = fileUsername.ReadToEnd();
}

下面的代码也有缺陷:


The code that follows is also flawed:

System.IO.StreamWriter files = new System.IO.StreamWriter("C:\\Users\\Public\\Usernames.txt");
file.WriteLine(registeredUsername);
file.Close();

看到错误了吗?您正在打开(而不是关闭!!)一个名为 filesStreamWriter,但您正在尝试编写并尝试关闭 file.大错.

See the error? You're opening (and not closing!!) a StreamWriter called files, but you're trying to write and trying to close file. Big mistake.

这也可以像这样修复:

using (System.IO.StreamWriter files = new System.IO.StreamWriter("C:\\Users\\Public\\Usernames.txt"))
{
    files.WriteLine(registeredUsername);
}