-2

我现在有了所有的 exe 文件,但问题是 xx 它给了我所有的 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");
    }
}
4

1 回答 1

1

不,真的没有完美的方法来做你想做的事。所有可执行文件基本上都是“生而平等”的。

你到底希望达到什么目标,为什么?

也许您的目标是只显示用户可能想要运行的可执行文件?如果这是您的目标,您的问题可能是:“我如何判断用户之前使用过哪些可执行文件,或者将来可能直接调用哪些可执行文件?”

如果这是问题所在,那么您可以提出一种启发式方法来尝试解决问题。你的算法可以做一些事情,比如查看桌面和开始菜单上的快捷方式,以及在AppPaths和类似位置注册的基于注册表的程序列表,以尝试推断哪些可执行文件或多或少可能运行。当然,它不会是完美的,但有时一个不完美的方法总比没有好。

于 2013-09-15T05:42:09.413 回答