Поиск файла в папке Program Files - PullRequest
0 голосов
/ 27 ноября 2010

Я ищу файл, используя функции win32 FindFirstFileEx & FindNextFile.

Но когда я пытаюсь найти файл в каталоге C: \ Program Files, моя функция завершается ошибкой, и я почти уверен в GetLastError (), что это потому, что каталог является привилегированным, и у меня нет доступа к нему.

Есть ли способ попросить пользователя и получить привилегированный доступ к каталогу программных файлов

или C: / windows, чтобы я мог искать в нем?

Или другая функция win32, которая позволяет мне искать в этом каталоге?

Или, может быть, программе не нужно искать эти каталоги, поэтому нет способа это сделать?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

Или другая функция win32, которая позволяет мне искать в этом каталоге?Вы можете попробовать использовать cmd.exe для запуска команды dir для этой папки и записать список каталогов во временный файл.

Например, вы можете использовать API-интерфейс CreateProcess Win32 для выполнения этой команды:

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

, и список файлов в каталоге будет записан в c: \ temp \ files.txt временный файл.

0 голосов
/ 27 ноября 2010

Это немного не по теме, но ...

Вы знаете, что действительно здорово для работы с файлами на любой платформе в C ++ в наши дни? Boost.Filesystem

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

Вы должны иметь возможность пропускать каталоги, к которым у вас нет доступа.

API токена Windowsможет привести вас на правильный путь для этой подсказки:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...