Я пытаюсь удалить файл на C#, однако получаю сообщение о том, что файл используется из другого процесса. Я хочу, чтобы проверить, существуют ли файлы и закрыть их. Я использую следующую функцию для того, чтобы проверить, если файл открыт:Файл используется другим процессом в C#
public static bool IsFileInUse(string path)
{
if (string.IsNullOrEmpty(path))
throw new ArgumentException("'path' cannot be null or empty.", "path");
try
{
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read)) { }
}
catch (IOException)
{
return true;
}
return false;
}
и я пытаюсь, когда файл используется, чтобы закрыть его:
bool checking = IsFileInUse(file);
File.Create(file).Close();
if (File.Exists(file))
{
File.Delete(file);
}
Я получил проблемы в файле. Создайте линию, я получаю сообщение:
Файл используется другим процессом.
EDIT: Я пытаюсь использовать стопорный подход для того, чтобы удалить файл. Я полагаю, чтобы удалить файл внутри оператора блокировки? Как правильно использовать оператор блокировки?
Вы не можете закрыть файл, открытый каким-либо другим способом любым способом прямого доступа. – Adil
Поэтому я должен убить процесс, чтобы закрыть файл, не так ли? –
Это ваше приложение? Если да, то вы можете отправить сообщение, чтобы освободить его или использовать блокировку между процессами. – Adil