Нужно отследить изменения в каталоге и его подкаталогах. Для этого использую функцию ReadDirectoryChangesW
, но она постоянно возвращает 0
. В чем может быть дело?
FILE_NOTIFY_INFORMATION strFileNotifyInfo[1024];
DWORD dwBytesReturned = 0;
while(true){
if(ReadDirectoryChangesW(L"D://ServerCatalog1" /*options.catalog*/, strFileNotifyInfo, sizeof(strFileNotifyInfo), true, FILE_NOTIFY_CHANGE_FILE_NAME || FILE_NOTIFY_CHANGE_DIR_NAME || FILE_NOTIFY_CHANGE_SIZE, &dwBytesReturned, NULL, NULL) != 0){
printf("Mod: %s\n", strFileNotifyInfo[0].FileName);
}
}
Проблема решена. Был невнимателен. В ReadDirectoryChangesW первым параметром нужно передавать HANDLE
HANDLE hDir = CreateFile("D://ServerCatalog1", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
while(true){
if(ReadDirectoryChangesW(hDir, strFileNotifyInfo, sizeof(strFileNotifyInfo), true, FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_SIZE, &dwBytesReturned, NULL, NULL) != 0){
printf("Mod: %s\n", strFileNotifyInfo[0].FileName);
} else {
Error = GetLastError();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В данном коде получаю Ошибка сегментирования (сделан дамп памяти)Компилирую под Linux
Пытаюсь явно подключить dll библиотеки в свой c++ проект, вычитал, что делается это по такому принципу:
ЗдравствуйтеНе получается использовать Protocol Buffers в VS 2017 (Debug x86)
Добрый день, помогите разобраться, выдает ошибку - error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: [-Werror] String...