[NTFS] изменения файлов / папок
Есть апи, которые отслеживают изменения в директории и ее поддиректориях, правда они вроде не отслеживают изменения данных в файлах.
Еще можно смотреть журнал NTFS, так можно следить изменения, которые произошли за время пока программане была запущена и сама не следила, там вроде записываются и изменения данных в файле. Но с журналом это теория, сам не пользовался этой фишкой. Ботай топик в МСДН "Change Journals".
Например, проводник - неужели он каждые сколько-то миллисекунд обращается к открытой папке и смотрит, не поменялась ли она?
Есть апи, которые отслеживают изменения в директории и ее поддиректориях, правда они вроде не отслеживают изменения данных в файлах.смотри например:
FindFirstChangeNotification
The FindFirstChangeNotification function creates a change notification handle and sets up initial change notification filter conditions. A wait on a notification handle succeeds when a change matching the filter conditions occurs in the specified directory or subtree. The function does not report changes to the specified directory itself.
This function does not indicate the change that satisfied the wait condition. To retrieve information about the specific change as part of the notification, use the ReadDirectoryChangesW function.
HANDLE FindFirstChangeNotification(
LPCTSTR lpPathName,
BOOL bWatchSubtree,
DWORD dwNotifyFilter
);
Думаю, проводник через эти апи работает.
http://www.relisoft.com/Win32/watcher.html
ЗЫ: Вот ведь действительно, I will use dumb forum users before asking google =( Четвёртая ссылка по запросу "win32 api file changed event". Вторая ссылка тоже приблизительно про это.
Отслеживают, вот:
FILE_NOTIFY_CHANGE_FILE_NAME (renaming, creating, or deleting a file)
FILE_NOTIFY_CHANGE_DIR_NAME (creating or deleting a directory)
FILE_NOTIFY_CHANGE_ATTRIBUTES
FILE_NOTIFY_CHANGE_SIZE
FILE_NOTIFY_CHANGE_LAST_WRITE (saving a file (это оно!
FILE_NOTIFY_CHANGE_SECURITY
Сорри за вопрос - нет инета...
Уверен, что оно? Думаю, что это отслеживание изменения атрибута последнего изменения, он может и не меняться при изменении содержимого файла. Но это все проверять нужно.
Оставить комментарий
AKMARJAN
Есть ли уже в WinNT возможность "подписаться" на файлы / папки, чтобы при их изменении, вызывалась какая-то функция?