![]() |
C++ помощь в програмирование :help:
Вот столкнулся с проблемой :
Пробывал написать маленькую програмку что бы когда в отдельной папке появлялся новый файл она выполняла действие ( музыка к примеру ) Но как выяснилось сишка не такая уж и простая как кажеться (((( Может у кого кусок кода валяеться ? Буду очень признателен Спасибо |
-Time-
Не все так сложно: 1) Определяешь и запускаешь отдельный поток. 2) В нем вызываешь Win32 API функцию ReadDirectoryChangesW. (смотри в MSDN). Функция может работать как синхронно так и асинхронно. Определяешь нужный тебе фильтр (NotifyFilter) и вызываешь. Функция возвращается, когда произошли изменения в директории. По результатам нотификации определяешь, что произошло ( в твоём случае - появление нового файла) и выполняешь своё действие (игрешь музыку). Все это должно работать в цикле (если тебе надо следить постоянно). П.С. в .NET используется класс FileSystemWatcher. |
[Ghost]
если не сложно можно хоть маленький пример ... у меня С++ буилдер ... искал в хелпе eadDirectoryChangesW пусто .... (( |
-Time-
Дык имя функции я привел из Win32 API. VC++ работает с Win32 API напрямую. Не знаю как там С++ билдер. Ты вообще работал с Win32 API из билдера? Вот тебе объяснение: http://msdn.microsoft.com/library/de...rychangesw.asp а вот пример: http://msdn.microsoft.com/library/de...hangeswapi.asp |
[Ghost] не не работал, но щас вот пытаюсь ....
Спасибо щас бум читать |
если не трудно подскажите почему не работает ?
Цитата:
|
FileSystemWatcher
|
ну народ подскажите почему не пашет (((
очень нужно ... |
-Time-
Во-первых задавай вопрос точнее: что значить не работает? Есть много степеней "не работы": программа может падать, не делаеть то что надо и т.д. Во-вторых условия: какая среда разработки (VС++, C++ Builder) В-третьих, что она вообще должна делать? |
[Ghost]
Цитата:
при запуске просто выдаёт First pass on В-третьих, что она вообще должна делать? програма должна просто проверять определёную папку на появление новых файлов, при появление выполнять звуковой сигнал. Спасибо |
Не на писал Во-вторых. Судя по всему с++ билдер.
Все абсолютно законно - First pass on. После 1-го вызова функции scandir программа выходит из main. Я не вижу у тебя объявления потока (thread). А ведь я писал об этом в 1-ом посте. Сканирование папки на изменения файла - процесс постоянный, а не одноразовый. И выполняться это должно в отдельном потоке. А так она у тебя один раз проверяет папку на изменения и выходит. Смотри на примеры в MSDN по линку который я тебе дал. |
Вот пример:
Код:
public class Watcher |
пример за мониторингом папки на сях тут
воспользуйся поиском "ReadDirectoryChanges" в инете есть примеры. |
Плиз помогите горю:
нужна консольная програмка на С++ на тему: 1. Создать "Справочник покупателя". В него входят: база торговых точек города название, адрес и телефон специализация и время работы. Выбор магазинов по произвольному шаблону (т.е. поиск по любому из параметров) 2. Создать программу тестирующую пользователя по какой-либо предметной области. Программа должна иметь возможность загрузить необходимый тест из файла, а также выгрузить в отдельный файл результаты сдачи данного теста текущим пользователем. Любую, на выбор. Если есть возможность ----- apolo.m.e@mail.ru |
| Часовой пояс GMT +4, время: 21:12. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.