Не удается удалить файл «Процесс не может получить доступ к файлу» - PullRequest
1 голос
/ 28 декабря 2011

У меня есть этот код, идея состоит в том, чтобы прочитать из файла и удалить файл.

                StreamReader sr = new StreamReader(path);

                s = sr.ReadLine();
                if ((s != null))
                {
                 sr.ReadLine();
                  do
                   {
                   // I start to read and get the characters

                   }while (!(sr.EndOfStream));
                 }
                 sr.close();

, а затем после закрытия streamReader я пытаюсь удалить файл, но не могу:

"Процесс не может получить доступ к файлу, поскольку он используетсядругой процесс "

Что я могу сделать?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

Попробуйте удалить после включения вашего кода в оператор using следующим образом:

using(  StreamReader sr = new StreamReader(path) ) 
{ 
    ...
}

Если это тоже не сработает, другой файл заблокировал ваш файл.

0 голосов
/ 28 декабря 2011

Чтобы прочитать файл построчно, попробуйте следующее:

using (var reader = new StreamReader(path))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        // do something with the line that was just read from the file
    }
}

// At this stage you can safely delete the file
File.Delete(path);

или, если файл небольшой, вы можете даже загрузить все строки в памяти:

string[] lines = File.ReadAllLines(path);
// Do something with the lines that were read
...
// At this stage you can safely delete the file
File.Delete(path);
0 голосов
/ 28 декабря 2011

Почему бы вам не использовать что-то подобное

using (StreamReader sr= new StreamReader(your Path here))
{
    // do your stuff
}
...