Как отслеживать изменения файлов через Win API - PullRequest
0 голосов
/ 03 января 2019

Мне нужно отслеживать изменения определенного набора файлов (или только одного файла) и разрешать Windows сообщать в мое приложение. Вполне вероятно, что большинство файлов будут находиться в одном каталоге, но я бы предпочел систему мониторинга для каждого файла.

Я нашел этот пример http://codewee.com/view.php?idx=20 но пример отслеживает только специальную папку Desktop.

Сначала с помощью вызова SHGetSpecialFolderLocation , затем с использованием результирующего LPITEMIDLIST в функции SHChangeNotifyRegister (через SHChangeNotifyEntry struct)

Мне не удалось обобщить его в произвольный каталог. MS Docs говорит, что SHGetSpecialFolderLocation не будет поддерживаться в любом случае в будущем, SHGetFolderLocation следует использовать вместо.

Но, опять же, SHGetFolderLocation устарела, даже не упоминая, что в ней нет строки / пути параметр.

Есть ли какая-нибудь удобная функция, которая принимает путь к каталогу или полное имя файла и создает LPITEMIDLIST, который затем может быть вставлен в SHChangeNotifyRegister ?

1 Ответ

0 голосов
/ 03 января 2019

FindFirstChangeNotification и др.

ReadDirectoryChangesW, ReadDirectoryChangesExW

SHParseDisplayName может использоваться для преобразования пути к файлу в PIDL, для использования с SHChangeNotifyRegister

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