![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Люда |
|
|||
|
Unregistered |
Мне надо отслеживать события, происходящие в определенном каталге (удаление, появление файлов и т.д.), как это сделать не знаю, может можно как-то вытащить время модификации директории или еще как-то. Помогите!!!
|
|||
|
||||
| Grey |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
У дериктории можно вытащить время последнего доступа
и время изменения, делается это точно также как с файлом, надо вытащить атрибуты. Для MFC подойдет CFile::GetStatus Для WinApi GetFileAttributesEx А что подрузамевается под отслеживать события в директории? Тебе надо раз в день проверять не изменилось ли там что-нибудь или сразу реагировать на изменения? |
|||
|
||||
| Люда |
|
|||
|
Unregistered |
Мне надо собратьстатистику, то есть постоянно отслеживать события и подсчитывать их кол-во
|
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Если это NT, то можно включить аудит на данный каталог для требуемых событий, а затем программно с определенной периодичностью анализировать лог файл и собирать статистику
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Люда |
|
|||
|
Unregistered |
Спасибо, Grey, усе получилось!
Vyacheslav, можно поподробнее насчет аудита, у меня NT, статистику надо отслеживать нетолько на моем компе, но и на других в сети. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Указываю по W2000 (NT4 нет по рукой). Для выбранной папки заходите Свойства->Безопасность->Дополнительно->Аудит. Выбираете пользователей, которых хотите отслеживать. Если конкретно пользователи не интересуют, выбираете "Все", далее указываете типы доступа, которые хотите отслеживать,например Вы можете отслеживать успех или неуспех "Обзор папок/выполнение файлов", "Создание файлов/запись данных", "Удаление" и т.п. Можно задать отдельно регистрацию только успешно выполненных операций или отказов, можно и то и другое. Например, если кто-то попытается удалить файл, хотя эта операция ему не разрешена, событие будет отмечено как отказ при поытке удаления. Все это валиться в файл C:\WINNT\System32\config\SecEvent.Evt. Это файл можно программно проанализировать. Если не ошибаюсь для серверов можно перенаправить вывод журнала не файл, а в таблицу MSSQL
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Там правда надо поработать, чтобы разобрать формат логфайла. Но имеется возможность в MMC экспортировать журнал в обычный текстовый файл, анализ которого не составит труда
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Средствами виндов можно следить за событиями в отдельной папке с помощью FindFirstChangeNotification() / FindNextChangeNotification() / FindCloseChangeNotification. Я делал так, что на каждую папку создавал отдельный поток и смотрел, когда изменялось, время файлов. Сравнивал ну и соответственно дальше - по обстоятельствам.
То есть. При создании потока ставишь FirstChangeNotification - FindFirstChangeNotification(path,false,FILE_NOTIFY_CHANGE_LAST_WRITE); в обработчике потока ждешь WaitForSingleObject (тот, который получен при старте потока) - while(!Terminated) { WaitForSingleObject(WatchHandle,INFINITE); while(WaitForSingleObject(WatchHandle,0) == WAIT_OBJECT_0) { FindNextChangeNotification(WatchHandle); } ... //тут смотрим, что конкретно изменилось. } А как смотреть - сделать массив имен файлов и дат файлов. Ну и даты сравнивать. Вот. -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
| Люда |
|
|||
|
Unregistered |
TwoK, спасибо огромное, то, что ты посоветовал, это то что надо, короче вся рассыпаюсь в благодарностях
|
|||
|
||||
| TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Всегда пжалста
Посмотри хелпы на FindFirst..... и так далее. Там много разных типов мониторинга, сдается мне, что здесь я мониторю только изменение какого-то файла, а не создание. Просто у меня сейчас хелпов нет - не проверить. -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
| Люда |
|
|||
|
Unregistered |
Ага, уже посмотрела и нашла, еще раз огромное спасибо, уже все в работе
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |