Можно ли какнить отследить: удаление, создание, перемещение, переименование каких-либо файлов и каталогов? если можно, то напишите какойнибуть примерчик, или скажите где можно взять инфу поэнтому делу. заранее блогодарен. Toha.
Здравствуйте, Toha! В Windows для этого можно использовать функции FindFirstChangeNotification, FindNextChangeNotification и FindCloseChangeNotification. Схема такая: 1. Подписываетесь на нужные изменения с помощью функции FindFirstChangeNotification, которая возвращает некий handle. 2. С помощью функций ожидания (например, WaitForSingleObject) ждете получения нотификации для указанного handle. 3. Если нужно продолжать мониторинг, вызываете FindNextChangeNotification и переходите к п.2. Иначе вызываете FindCloseChangeNotification и выходите. В приложении см. пример из MSDN. С уважением, Avl2k. Monitoring Changes in a Directory or Directory Tree The following example monitors the directory tree starting at C: for directory name changes. It also monitors the C:WINDOWS directory for file name changes. The example uses the FindFirstChangeNotification
function to create two notification handles and the WaitForMultipleObjects function to wait on the handles. Whenever a directory is created or deleted in the tree starting at C: , the example updates the entire directory tree. Whenever a file is created or deleted in the C:WINDOWS directory, the example refreshes the WINDOWS directory. The FindNextChangeNotification function restarts the change notification each time the example processes a change. DWORD dwWaitStatus; HANDLE dwChangeHandles[2];
// Watch the C:WINDOWS directory for file creation and // deletion.
dwChangeHandles[0] = FindFirstChangeNotification( "C:\WINDOWS", // directory to watch FALSE, // do not watch the subtree FILE_NOTIFY_CHANGE_FILE_NAME); // watch file name changes
if (dwChangeHandles[0] == INVALID_HANDLE_VALUE)
ExitProcess(GetLastError());
// Watch the C: subtree for directory creation and // deletion.
dwChangeHandles[1] = FindFirstChangeNotification( "C:\", // directory to watch TRUE, // watch the subtree FILE_NOTIFY_CHANGE_DIR_NAME); // watch dir. name changes
if (dwChangeHandles[1] == INVALID_HANDLE_VALUE) ExitProcess(GetLastError());
// Change notification is set. Now wait on both notification // handles and refresh accordingly.
while (TRUE) { // Wait for notification. dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles, FALSE, INFINITE);
switch (dwWaitStatus) { case WAIT_OBJECT_0:
// A file was created or deleted in C:WINDOWS. // Refresh this directory
and restart the // change notification. RefreshDirectory is an // application-defined function.
RefreshDirectory("C:\WINDOWS") if ( FindNextChangeNotification( dwChangeHandles[0]) == FALSE ) ExitProcess(GetLastError()); break;
case WAIT_OBJECT_0 + 1:
// A directory was created or deleted in C:. // Refresh the directory tree and restart the // change notification. RefreshTree is an // application-defined function.
RefreshTree("C:\"); if (FindNextChangeNotification( dwChangeHandles[1]) == FALSE) ExitProcess(GetLastError()); break;
default: ExitProcess(GetLastError());
} }
Ответ отправлен: 11.04.2003, 11:41 Отправитель: Avl2k
Вопрос № 691
Посоветуйте ссылочку на компилятор С. Просто С. Если есть разновидности,существенно усложняющие жизнь, проведите маленький экскурс. Спасибо Ps есть какойто, но файлы ни куда не складываються. искал шже можно посмотреть куда компелировать в файл или в память не нашел. Может я порядок компиляции нарушаю7 Есть какой либо "законный" порядок?
Доброе время суток, Pupsik! Могу посоветовать поискать lcc- хороший компилятор C, но немного глючный редактор- им можно не пользоваться. Или DevC++(devcpp)- на основе mingw- вроде порт линуксового компилятора- а он славится хорошей оптимизацией кода (компилил им Lame- так он процентов на 10-30 быстрее работал чем после компиляцией VC). Он находится примерно по такому адресу :) -bloodshed.org или bloowshed.net. А ещё- поищи в яндексе словосочетание programmer tools- найдётся один очень хороший сайтик- там линки на это добро есть. Сайтик так и называется programmertools.что-то, точно опять не помню :(. Поиду к доктору- мозг апгрейдить 8). Ответ отправлен: 11.04.2003, 13:09 Отправитель: Morgion Отвечает K0dMaster
Здравствуйте, Pupsik! http://www.cs.virginia.edu/~lcc-win32/ гляди здесь очень хорошая вешь мне очень нравится %)) Ответ отправлен: 11.04.2003, 09:21 Отправитель: K0dMaster
Вопрос № 692
Здравствуйте! Подскажите пожалуйста толковый док по программированию модема (СОМ-порт) под ДОС. Если что, можно слать на мыло. Спасибо.
Приветствую Вас, Evgeny! В серии БСП (Библиотека системмного программиста) есть книга "Программирование модемов" (Том 4). Рекомендую. Взять можно здесь. Ответ отправлен: 11.04.2003, 09:57 Отправитель: VicSimon
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.