powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FindFirstChangeNotification и ко
4 сообщений из 4, страница 1 из 1
FindFirstChangeNotification и ко
    #39643066
wooly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Написал небольшую функцию для отслеживания записи в файлы в папках и столкнулся с такой непоняткой:
WaitForSingleObject возвращает WAIT_OBJECT_0 2 раза, даже если был изменен 1 файл. Если записать что-нибудь в 2 файла,
соответственно, будет возвращено 4 WAIT_OBJECT_0 и только потом WAIT_TIMEOUT. Почему?

p.s так-то оно мне не критично, но чисто из любопыства...

Вот тестовый пример. В папке d:\test лежат 2 текстовых файла: file1.txt и file2.txt.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure TForm1.Button1Click(Sender: TObject);
var
  hChangeHandle: THandle;
  dwWaitStatus: DWORD;
begin
  hChangeHandle := FindFirstChangeNotification(PChar('d:\test'), True, FILE_NOTIFY_CHANGE_LAST_WRITE);
  if hChangeHandle <> INVALID_HANDLE_VALUE then
  begin
    repeat
      dwWaitStatus := WaitForSingleObject(hChangeHandle, 7000);
      if dwWaitStatus = WAIT_OBJECT_0 then
        Memo1.Lines.Add('WAIT_OBJECT_0')
      else if dwWaitStatus = WAIT_TIMEOUT then
        Memo1.Lines.Add('WAIT_TIMEOUT')
    until (dwWaitStatus = WAIT_TIMEOUT) or not FindNextChangeNotification(hChangeHandle);
    FindCloseChangeNotification(hChangeHandle);
  end else
    Form1.Memo1.Lines.Add('FindFirstChangeNotification failed');
end;
...
Рейтинг: 0 / 0
FindFirstChangeNotification и ко
    #39643084
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри, что там происходит https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa365465(v=vs.85).aspx
...
Рейтинг: 0 / 0
FindFirstChangeNotification и ко
    #39643107
Фотография kloun02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wooly,

Пишешь в файл то небось каким нибудь нотепадом++ ? :)
...
Рейтинг: 0 / 0
FindFirstChangeNotification и ко
    #39643182
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wooly,
3 их может приходить
1-й это изменение файла, [2-й изменение атрибутов файла,] 3-й изменение атрибутов директории
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FindFirstChangeNotification и ко
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]