Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

факт создания или изменения файла [D7, Win95/98, WinXP]


fenixaz ©   (2006-03-15 07:58:00) 

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

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

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


Ihor Osov'yak   (2006-03-16 03:24:00) [1]

драйвер-фильтр файловой системы. Увы, совершенно разные реализации для 9x и NT-XP..  Возможна только унификация на уровне интерфейса с win32, а то и немного выше - на уровне классса, взаимодействующем с фильтром.

www.sysinternals.com, filemon как пример готового изделия. На диске к соотв. книге Соломона - Руссиновича есть исходники драйвера, не самой последней версии..

увы, не делфи.. я имею ввиду драйвер, оболочку, работающую на уровне win32 можно и на делфи..


fenixaz   (2006-03-16 02:58:00) [2]

Хорошо, надо под 9х (задача так стоит), шерстить всю папку мне кажется долго, т.к. файлы обновляются каждые 3-10 секунд.


clickmaker   (2006-03-15 10:02:00) [3]


> И чтобы механизм возвращал путь и имя файла с которым произошли
> изменения

универсального решения для всех ОС походу нет.. Разве что вести базу файлов, а потом шерстить папку FindFirstFile/NextFile на предмет изменений


Наверх

Титульная страница Поиск, карта сайта Написать письмо