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

时间:2011-08-30 14:33:01

标签: .net windows winapi path filesystems

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

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

调用应用程序
        ProcessStartInfo ^processStartInfo = gcnew ProcessStartInfo("ReallyCool.exe");
        Process ^process = gcnew Process();
        process->StartInfo = processStartInfo;
        bool processStarted = process->Start();

只有在上面的最后一行才会抛出。

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

根据标题,我很想避免在可能的情况下明确搜索路径上的每个目录。我也不确定如何从.NET编码中获取Windows路径。

1 个答案:

答案 0 :(得分:1)

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

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