.net 如何在不迭代(或执行)路径上的所有文件夹的情况下查找路径中是否有可执行文件

.net 如何在不迭代(或执行)路径上的所有文件夹的情况下查找路径中是否有可执行文件,.net,windows,winapi,path,filesystems,.net,Windows,Winapi,Path,Filesystems,我知道操作系统和API之间的文件操作是相当非标准的,但我想知道路径中是否存在可执行文件(在运行时命名) 这是对用户输入的验证,稍后将使用 ProcessStartInfo ^processStartInfo = gcnew ProcessStartInfo("ReallyCool.exe"); Process ^process = gcnew Process(); process->StartInfo = processStartInfo;

我知道操作系统和API之间的文件操作是相当非标准的,但我想知道路径中是否存在可执行文件(在运行时命名)

这是对用户输入的验证,稍后将使用

        ProcessStartInfo ^processStartInfo = gcnew ProcessStartInfo("ReallyCool.exe");
        Process ^process = gcnew Process();
        process->StartInfo = processStartInfo;
        bool processStarted = process->Start();
只有当它到达上面的最后一行时才会抛出

有人知道我如何在冒险实际执行文件之前验证文件是否存在吗?或者我是一个naif,允许用户通过我的应用程序运行“.exes”


根据标题,如果可能的话,我希望避免显式搜索路径上的每个目录。我也不确定如何从.NET编码中获取Windows路径。

要检查文件是否存在,请使用
bool doesFileExist=System.IO.file.Exists(路径)


我怀疑是否有一种简单的方法可以在不运行它的情况下知道它是否是有效的可执行文件。

要检查文件是否存在,请使用
bool doesFileExist=System.IO.file.Exists(path)


我怀疑有没有一种简单的方法可以不用运行它就知道它是否是有效的可执行文件。

谢谢,剩下的一个复杂性是提供路径中的每个目录,但您的代码使我的工作更轻松。是否需要在给定路径的子文件夹中查找文件?我需要查看客户端PC搜索可执行文件的确切路径。我认为它在DOS shell中类似于%PATH%,但我不知道如何使用WinAPI或.NET以编程方式为任何Windows PC获取它。
System.Environment.GetEnvironmentVariable(“PATH”)
谢谢,剩下的一个复杂性是提供路径中的每个目录,但您的代码使我的工作更轻松。是否需要在给定路径的子文件夹中查找文件?我需要查看客户端PC搜索可执行文件的确切路径。我认为它类似于DOS shell中的%PATH%,但我不知道如何在任何Windows PC上使用WinAPI或.NET以编程方式获取它。
System.Environment.GetEnvironmentVariable(“PATH”)