Завершите все процессы, пытающиеся получить доступ к файлу.C # - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать / кодировать полезный инструмент на C #, и мне может понадобиться небольшая помощь с конкретной проблемой.

Я хотел бы знать, есть ли в любом случаезавершить ВСЕ процессы, которые пытаются получить доступ к файлу , поэтому я могу открыть и отредактировать определенный файл.

Проблема в том, что я пытаюсь "System.IO.File.WriteAllLines ()"для файла, который уже занят другим процессом.

System.IO.StreamReader file = new System.IO.StreamReader(settingsPath);

try
{
    while (file.ReadLine() != null)
    {
        String lineContent = file.ReadLine();
        if (lineContent.Contains(whichSettingString) && lineContent != null)
        {

            lineContent = lineContent.Replace(whichSettingString, NewValue);
            completeLineContent[0] = lineContent;
        }
        lineContent = lineContent + lineContent;
    }
} catch (Exception)
{

}
//file.Dispose();
file.Close();
System.IO.File.WriteAllLines(settingsPath, completeLineContent);

My IDE Visual Studio выдает исключение в последней строке, сообщая, что файл уже занят другим процессом.Сам по себе код работает, я попытался сохранить / записать вывод этого блока в другой файл, и он работает.Таким образом, единственная идея, которую я получил, которая может мне помочь, это строка кода или, возможно, более 1 строки, чтобы «убить» все процессы, которые пытаются получить доступ к файлу.

Уже некоторое время гуглил и проверял переполнение стека для этой проблемы, но пока не нашел решения.Это мой первый комментарий о переполнении стека, и я немного новичок в кодировании, поэтому, если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать :-)

Большое спасибо, наилучшие пожелания Nico

...