![]() |
|
#1
|
|||
|
|||
![]() Такая вот ситуация сложилась.
Задача: Небольшая програмка которая бы исполняла роль журнала для файлов. Тоисть мониторила указаную папку и подпапки на наличие файлов удовлетворяющим условие. Должен быть фильтр по маске файла. Например в папке и подпапках есть xml,txt... файли. В програмку помещаеться поле выбора: 1.форматы файлов - заранее прописываються интересующие формати xml,txt например. 2.в имени файла с 5 по 10 символ присутсвует например название склада - нужен фильтр по названию склада. 3.последние 4 символа имени файла - дата документа - нужен фильтр по этой дате. Найденые файли должны отображаться в таблице с возможностью по правому клику на файле выдать контекстное меню с возможностью печати\открытия в блокноте например. Вот такая задачка. Может кто-нить поможет начать ее реализацию, может встречал кто исходники с подобным. Заранее благодарен всем! |
#2
|
||||
|
||||
![]() Я такое писал, создавал поток который сканит выбранную папку на наличие файлов по заранее известной маске, в зависимости от файла выполняет действия.
модуль потока Код:
ну и соответственно запускаешь потоки из основной программы Код:
|
#3
|
|||
|
|||
![]() Ну, здесь такое сложное решение даже не нужно. Достаточно просто периодически запускать скан папки с подпапками. Сложнее всего будет с фильтрацией. Если позиции по 2 и 3 пунктам точно фиксированные, то и тут все несложно. Тебе нужны функции FindFirst/FindNext/FindClose и MatchesMask.
Алгоритм примерно такий. В памяти делжим список найденных файлов. Перед поиском его очищаем. Начинаем поиск с корня указанной папки. Если найденный объект есть папка - идем внутрь и рекурсивно вызывем ту же процку. Если файл то: 1. проверяем расширение по маске 2. проверяем номер по позициям в имени файла 3. проверяем дату Если все проверки прошли, то добавляем файл в список. Если нет, то не добавляем. шаблон: Код:
|