我现在已经获得了所有 exe 文件,但问题是 x.x 它给了我所有 EXE,现在我必须在运行所需应用程序的可执行文件和所有垃圾可执行文件之间进行过滤。
就像在 Internet Explorer 文件夹中一样,我有:
C:\Program Files\Internet Explorer\ieinstal.exe
C:\Program Files\Internet Explorer\ielowutil.exe
C:\Program Files\Internet Explorer\iexplorer.exe
但我只想iexplorer.exe
文件,对我来说,所有其他都是垃圾。有什么办法可以在这些之间进行过滤吗?
List<string> path = new List<string>();
List<string> realPaths = new List<string>();
try
{
path.AddRange(Directory.GetFiles(@"C:\Program Files\", "*.exe", SearchOption.AllDirectories));
path.AddRange(Directory.GetFiles(@"C:\Program Files (x86)\", "*.exe", SearchOption.AllDirectories));
foreach (string item in path)
{
string[] parse = item.Split('\\');
if (parse.Contains("Common Files")
|| parse.Contains("IIS") || parse.Contains("Microsoft Help Viewer")
|| parse.Contains("Microsoft SQL Server") || parse.Contains("Microsoft SQL Server Compact Edition")
|| parse.Contains("Microsoft Sync Framework") || parse.Contains("Microsoft Synchronization Services")
|| parse.Contains("Microsoft Visual Studio 9.0") || parse.Contains("Microsoft.NET") || parse.Contains("MSBuild")
|| parse.Contains("Reference Assemblies") || parse.Contains("Windows Defender") || parse.Contains("Windows NT")
|| parse.Contains("HTML Help Workshop") || parse.Contains("Microsoft Analysis Services") || parse.Contains("Microsoft ASP.NET")
|| parse.Contains("Microsoft F#") || parse.Contains("Microsoft Games for Windows - LIVE") || parse.Contains("Microsoft SDKs")
|| parse.Contains("Microsoft Silverlight") || parse.Contains("Microsoft Visual Studio 8") || parse.Contains("Microsoft XNA")
|| parse.Contains("Mozilla Maintenance Service"))
{
continue;
}
else
{
realPaths.Add(item);
}
}
foreach (string item in realPaths)
{
Console.WriteLine(item + "\n");
}
}
不,确实没有完美的方法来完成您想要做的事情。所有可执行文件基本上都是“生而平等”。
您到底希望实现什么目标,为什么?
也许您的目标是仅显示用户可能想要运行的可执行文件?如果这是您的目标,您的问题可能是:“我如何知道用户之前使用过或将来可能直接调用哪些可执行文件?”
如果这是个问题,那么你可以想出一个启发式尝试解决问题的方法。您的算法可以执行诸如查看桌面和开始菜单上的快捷方式以及基于注册表的程序列表之类的操作AppPaths和类似的位置来尝试推断哪些可执行文件或多或少可能会运行。当然,它不会是完美的,但有时不完美的方法总比没有好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)