在Program Files目录中搜索文件

时间:2010-11-27 07:10:00

标签: winapi

我正在使用win32函数FindFirstFileEx&来搜索文件。 FindNextFile。

但是当我尝试在目录C:\ Program Files中搜索文件时,我的功能失败了&我很确定GetLastError()是因为目录是特权和&我无法访问它。

有没有办法让用户询问&获得对程序文件目录的特权访问

或C:/ windows所以我可以在其中搜索?

或者是一个不同的win32函数,允许自己在这个目录中搜索?

或者也许根本不需要程序来搜索这些目录,所以没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

这有点偏离主题,但是......

你知道现在用C ++处理任何平台上的文件真的很棒吗?的 Boost.Filesystem的

http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm

您应该可以跳过您无权访问的目录。

Windows Token API可能会让您找到该提示的正确轨道:

http://msdn.microsoft.com/en-us/magazine/cc163486.aspx

答案 1 :(得分:0)

  
    

或者是一个不同的win32函数,允许自己在这个目录中搜索?     您可以尝试使用 cmd.exe 对该文件夹运行 dir 命令,并将目录列表捕获到临时文件中。

  

例如,您可以使用CreateProcess Win32 API来运行此命令:

cmd.exe /k dir "c:\Program Files" > c:\temp\files.txt

并且目录中的文件列表将写入 c:\ temp \ files.txt 临时文件。