C# C从目录结构中获取所有可执行文件,然后在运行时终止
我正试图: 1获取目录和所有子目录中所有可执行文件的列表 2如果这些可执行文件中有任何一个正在运行,请终止该进程 到目前为止,我所拥有的:C# C从目录结构中获取所有可执行文件,然后在运行时终止,c#,C#,我正试图: 1获取目录和所有子目录中所有可执行文件的列表 2如果这些可执行文件中有任何一个正在运行,请终止该进程 到目前为止,我所拥有的: String[] exes = Directory.GetFiles("C:\\Temp", "*.EXE", SearchOption.AllDirectories) .Select(fileName => Path.GetFileNameWithoutExtension(fileName)) .ToArray(); { exes.ToLi
String[] exes =
Directory.GetFiles("C:\\Temp", "*.EXE", SearchOption.AllDirectories)
.Select(fileName => Path.GetFileNameWithoutExtension(fileName))
.ToArray();
{
exes.ToList().ForEach(Console.WriteLine);
}
Console.ReadLine();
这显示了一个可执行文件列表。如果进程正在运行,如何使用此列表终止它们?最后得出以下结论:
try
{
//Find exes in dir and subdirs
String[] exes =
Directory.GetFiles("C:\\Temp", "*.EXE", SearchOption.AllDirectories)
.Select(fileName => Path.GetFileNameWithoutExtension(fileName))
.AsEnumerable()
.ToArray();
// kill the process if it is in the list
var runningProceses = Process.GetProcesses();
for (int i = 0; i < runningProceses.Length; i++)
{
if (exes.Contains(runningProceses[i].ProcessName))
{
runningProceses[i].Kill();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
请参阅,如果主/任何模块的路径在该目录结构内,是否不应扭转这种局面,而是应枚举所有进程并杀死它们?是否有理由希望/不期望某个正在运行的exe从该目录加载了DLL,但该进程不应被终止?我将此作为重写windows fuser的基础。。允许您对给定文件的进程进行分级,只需稍加修改,您就可以将其更改为处理从文件中获取的大量文件list@Damien_The_Unbeliever我只是在学C,所以请原谅我的无知。为什么这样会更好,代码方面又如何?