233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
|
||||||
Слежение за каталогом04.03.2010, 14:51. Показов 5352. Ответов 8
Метки нет Все метки)
(
Доброго времени суток. Решаю избитую вообщем то задачу слежения за появленим файлов в каталоге и раскладывания их по другим директориям. Но вопросов возникло много. Например, такой:
Хотелось бы понять получше принцип работы ф-ии ReadDirectoryChangesW, т.к. иногда она не записывает в буфер произошедшие события, например когда в каталог приходит сразу много файлов. Код потока, слкдящего за каталогом прилагается. Буду очень признателен за добрый совет
Похоже советов не предвидится. Это не страшно, т.к. съев пуд соли и пролив ведро крови, задачу я решил. Мог бы рассказать много интересного и привести свой рабочий код если кому-то нужно. Пишите
1
|
04.03.2010, 14:51 | |
Ответы с готовыми решениями:
8
Работа с каталогом Сайт с каталогом вариант с каталогом. |
![]() 13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
|
04.03.2010, 16:09 | |
Чёрный Медведь, я писал подобную прогу несколько лет назад. Правда на Си.
Отслеживал папку, вновь пришедшие файлы складывал в Оракловую базу. В папку, как раз, записывалось сразу по многу файлов. Я там использовал 2 потока с синхронизацией на мьютексах. - Первый следит за папкой. При обнаружении новых файлов - копирует сведения о новых файлах в FIFO буфер и шлёт сообщение второму потоку. Второй поток ждёт сообщений от первого потока, по их приходу, обрабатывает FIFO буфер и пишет новые файлы в базу. Доступ двух потоков к FIFO буферу регулировался через мьютекс. Сегодня вечером поищу тот проект...
1
|
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
|
|
04.03.2010, 17:52 [ТС] | |
John_Pa9JIbHuK, да что то вроде того
Mawrat, спасибо за предложенную помощь. Полагаю, что с задачей справился, по-этому Ваши исходники не потребуются. Хотел бы добавить, что проблема была в том, что я не проверял валидность файла на момент возникновения события "появился новый файл" и как следствие получал ошибку доступа+тормоза в следящем потоке, из-за которых следующие события вообще могли не обработаться. В итоге я остановился на том, что юзаю ReadDirectoryChangesW в асинхронном режиме + WaitForMultipleObjects для обеспечения корректного управления завершением следящего потока из основного(через Event). А для копирования файла использую 3-й поток, который проверяет доступ к файлу и как только доступ появляется, делает свою работу. Если кому то что то непонятно, спрашивайте. Многопоточность - тема достаточно интересная для новичков.
2
|
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
|
|
11.05.2010, 16:35 [ТС] | |
_Dem0N,
Можно, конечно )). Однако для целостности картины придётся бросить весь проект. Не пугайтесь что не определяются компоненты, они моего собственного изготовления и касаются только интерфейса. Замените их на стандартные (или удалите совсем) и всё будет компилиться. Удачи Вам. Если будут вопросы, пишите
1
|
233 / 95 / 15
Регистрация: 31.12.2009
Сообщений: 224
|
|
11.05.2010, 17:04 [ТС] | |
![]() Решение
Пардоньте, я подумал, что уже выложил проект. Заработался...
11.05.2010_16-28 FileReplicator.rar
2
|
0 / 0 / 0
Регистрация: 11.05.2010
Сообщений: 3
|
|
11.05.2010, 17:09 | |
Чёрный Медведь, спасибо огроменное!
0
|
11.05.2010, 17:09 | |
Помогаю со студенческими работами здесь
9
Траблы с каталогом
Работа с каталогом файлов работа с каталогом Daos Заполнение TreeView небольшим каталогом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
|
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
|
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
|
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
|
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования.
. . .
|
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
|
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
|
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
|
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
|
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
|