.NET 4.x Процесс не закрывается - C#
Формулировка задачи:
Не получается закрыть процесс из массива
Фокус ещё в том что файл удаляется когда он открыт, но после удаления ( файла ) процесс висит в системе ( не закрытый )
Как добиться закрытия процесса перед его удалением?
public static void ESA() { foreach (var Files in (new string[] { "*.exe", "*.doc", }).SelectMany(f => new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).GetFiles(f)).ToArray()) { foreach (var PC in Process.GetProcessesByName(Files.Name)) // Полагаю что проблема здесь. { PC.Kill(); // Функция не срабатывает } Files.Delete(); // Эта функция работает } }
Решение задачи: «.NET 4.x Процесс не закрывается»
textual
Листинг программы
[DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool TerminateProcess(IntPtr hProcess, int uExitCode); foreach (var ProcsList in Process.GetProcesses()) { try { if (ProcsList.MainModule.FileName.StartsWith(AppData, StringComparison.OrdinalIgnoreCase)) { TerminateProcess(ProcsList.Handle, 0); } } catch (UnauthorizedAccessException) { } catch (IOException) { } catch (Win32Exception) { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д