факт создания или изменения файла
От: Аноним  
Дата: 15.03.06 04:45
Оценка:
Подскажите пожалуйста, как реализовать (желательно с примером), следующую задачу:
Надо узнать факт создания или изменения файла в определенной директории и во всех директориях в нее вложенных и чтобы это работало и под 9x и XP.
И чтобы механизм возвращал путь и имя файла с которым произошли изменения или который создался, а так же показывал что это новый или измененный файл.

ReadDirectoryChangesW работает т.к. надо не но не работает под 9х
FindFirstChangeNotification работает и там и там, но не возвращает имя файла.
RxFolderMonitor тоже к сожалению не возвращает имя файла.

Структура директорий примерно такая:
root
— примерно 20 вложенных каталогов
--- 1 вложенный каталог
------ 10 вложенных каталогов
И в каждой конечной директории до 1000 файлов.
Re: факт создания или изменения файла
От: serg_fork  
Дата: 15.03.06 06:04
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Подскажите пожалуйста, как реализовать (желательно с примером), следующую задачу:

А>Надо узнать факт создания или изменения файла в определенной директории и во всех директориях в нее вложенных и чтобы это работало и под 9x и XP.
А>И чтобы механизм возвращал путь и имя файла с которым произошли изменения или который создался, а так же показывал что это новый или измененный файл.

А>ReadDirectoryChangesW работает т.к. надо не но не работает под 9х

А>FindFirstChangeNotification работает и там и там, но не возвращает имя файла.
А>RxFolderMonitor тоже к сожалению не возвращает имя файла.

А>Структура директорий примерно такая:

А>root
А> — примерно 20 вложенных каталогов
А> --- 1 вложенный каталог
А> ------ 10 вложенных каталогов
А>И в каждой конечной директории до 1000 файлов.

Вижу всего три варианта:
1) Забить на 9x и не морочить голову
2) FindFirstChangeNotification. Предварительно составить хеши на все файлы (долгое, но одноразовое занятие). На каждое событие от subj бегать по структуре каталогов и искать различия.
3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.
Re[2]: факт создания или изменения файла
От: fenixaz  
Дата: 15.03.06 23:55
Оценка:
Забить на 9х невозможно, т.к. задача стоит именно чтобы механизм работал под ней.
проблема состоит в том, что файлики обновляются скажем раз в 3-10 секунд и пробегать постоянно медленно.


А>>Подскажите пожалуйста, как реализовать (желательно с примером), следующую задачу:

А>>Надо узнать факт создания или изменения файла в определенной директории и во всех директориях в нее вложенных и чтобы это работало и под 9x и XP.
А>>И чтобы механизм возвращал путь и имя файла с которым произошли изменения или который создался, а так же показывал что это новый или измененный файл.

А>>ReadDirectoryChangesW работает т.к. надо не но не работает под 9х

А>>FindFirstChangeNotification работает и там и там, но не возвращает имя файла.
А>>RxFolderMonitor тоже к сожалению не возвращает имя файла.

А>>Структура директорий примерно такая:

А>>root
А>> — примерно 20 вложенных каталогов
А>> --- 1 вложенный каталог
А>> ------ 10 вложенных каталогов
А>>И в каждой конечной директории до 1000 файлов.

_>Вижу всего три варианта:

_>1) Забить на 9x и не морочить голову
_>2) FindFirstChangeNotification. Предварительно составить хеши на все файлы (долгое, но одноразовое занятие). На каждое событие от subj бегать по структуре каталогов и искать различия.
_>3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.
Re[3]: факт создания или изменения файла
От: serg_fork  
Дата: 16.03.06 06:01
Оценка:
Здравствуйте, fenixaz, Вы писали:

F>Забить на 9х невозможно, т.к. задача стоит именно чтобы механизм работал под ней.

F>проблема состоит в том, что файлики обновляются скажем раз в 3-10 секунд и пробегать постоянно медленно.

3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.
Re[4]: факт создания или изменения файла
От: Аноним  
Дата: 17.03.06 00:41
Оценка:
Здравствуйте, serg_fork, Вы писали:

F>>Забить на 9х невозможно, т.к. задача стоит именно чтобы механизм работал под ней.

F>>проблема состоит в том, что файлики обновляются скажем раз в 3-10 секунд и пробегать постоянно медленно.

_>3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.


Плиз поподробнее, на дельфях и под виндой с подобными задачами не сталкивался, подскажи что читать и где смотреть(если есть примеры).
Re[5]: факт создания или изменения файла
От: Eagle-XK Украина http://esoft.pp.ua
Дата: 17.03.06 03:58
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Плиз поподробнее, на дельфях и под виндой с подобными задачами не сталкивался, подскажи что читать и где смотреть(если есть примеры).


http://forum.sources.ru/index.php?showtopic=134834&amp;view=findpost&amp;p=1037747


RSDN@Home v.1.1.4
ORIGIN: Самый страшный вирус всегда сидит перед компьютером.
Re[5]: факт создания или изменения файла
От: Аноним  
Дата: 17.03.06 07:26
Оценка:
_>>3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.

А>Плиз поподробнее, на дельфях и под виндой с подобными задачами не сталкивался,


А не на дельфях ? Вроде SysInternalc.com FileMon отдается с исходниками на MS VC++.
На Delphi останется сделать только интерфейс к драйверу, возможно обернуть в service, чтобы не только из под Админа работало.
Re[6]: typo
От: Аноним  
Дата: 17.03.06 09:02
Оценка:
А>А не на дельфях ? Вроде SysInternalc.com FileMon отдается с исходниками на MS VC++.

SysInternals
Re[6]: факт создания или изменения файла
От: Eagle-XK Украина http://esoft.pp.ua
Дата: 17.03.06 12:31
Оценка:
Здравствуйте, <Аноним>, Вы писали:

_>>>3) Писать File System Filter Driver, натравливать его на рутовую папку и мониторить изменения.


А>>Плиз поподробнее, на дельфях и под виндой с подобными задачами не сталкивался,


А>А не на дельфях ? Вроде SysInternalc.com FileMon отдается с исходниками на MS VC++.

А>На Delphi останется сделать только интерфейс к драйверу, возможно обернуть в service, чтобы не только из под Админа работало.

Re[5]: факт создания или изменения файла
Автор: Eagle-XK
Дата: 17.03.06


RSDN@Home v.1.1.4
ORIGIN: Последнее слово техники:"Прощай!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.