该进程无法访问该文件,因为它正在被使用(错误)

use*_*872 0 .net c# visual-studio c#-4.0

我试图将文本文件中的行向上移动,然后将其重写回原始文件,但由于某种原因而出现错误,似乎无法弄明白.

using (StreamReader reader = new StreamReader("file.txt"))
{
    string line;
    int Counter = 0;

    while ((line = reader.ReadLine()) != null)
    {
        string filepath = "file.txt";
        int i = 5;
        string[] lines = File.ReadAllLines(filepath);

        if (lines.Length >= i)
        {
            string tmp = lines[i];
            lines[i] = lines[i-1];
            lines[i-1] = tmp;
            File.WriteAllLines(filepath, lines);
        }   
    }
    Counter++;
}
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 5

您正在打开要在此行中读取的文件:

using (StreamReader reader = new StreamReader("file.txt"))
Run Code Online (Sandbox Code Playgroud)

此时它已打开并正在使用.

然后你,后来有:

string[] lines = File.ReadAllLines(filepath);
Run Code Online (Sandbox Code Playgroud)

试图从同一个文件中读取.

目前尚不清楚你想要实现什么,但这不起作用.

从我所看到的,你根本不需要它reader.