|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.02.2014, 13:14 | #1 |
Пользователь
Регистрация: 25.10.2012
Сообщений: 11
|
Отслеживание директории на наличие файлов
Всем привет, возникла необходимость отслеживать директорию на наличие файлов в ней. Файлы туда попадают и обрабатываются другой программой, после чего удаляются. В итоге через какое-то время(время на обработку этих файлов программой) директория становится пустой.
Мне необходимо отслеживать текущее состояние этой директории до того момента, пока она не очиститься, попутно выводя количество необработанных файлов там. Я реализовал это так: Код:
Да и в целом я не уверен, что данный код решает задачу оптимальным способом. Вопроса два: 1) Как решить проблему с отображение количества файлов на форме 2) Можно ли решить задачу более оптимальным способом? |
12.02.2014, 13:27 | #2 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
|
12.02.2014, 13:58 | #3 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
в упрощеном виде повесить сие на таймер и while со sleep убрать
Не стесняемся, плюсуем!
|
12.02.2014, 14:40 | #4 |
Пользователь
Регистрация: 25.10.2012
Сообщений: 11
|
ZuBy,
Пока так и не вкурил, как это делается. Вот читаю листинг программы по вашей ссылке номер 2. Нашел такую строку: Код:
Как я понимаю, чтобы мой код заработал на отображение количества файлов(обновление label), необходимо все это дело в отдельный поток завернуть? Пойду гуглить о потоках. Slym, сейчас попробую ваш вариант |
12.02.2014, 14:42 | #5 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
я не особо вчитывался, это просто выборка из гугла.
я бы посоветовал 1 ссылку посмотреть, там как раз с потоком сделано |
12.02.2014, 14:55 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, делать подобные циклы - моветон! Хоть в потоке, хоть не в потоке!
Но, если уж Вы пишите индусский код, так, по крайней мере, отдавайте в цикле циклы операционной системе, вставьте внутрь цикла строчку : Код:
в-третьих, задачу можно решить и по другому - без таймеров, вызывать обработку только в случае события изменения в директории (об этом на форуме писалось неоднократно с примерами кода и даже готовыми программами). p.s. извините, по ссылкам не ходил. Подозреваю, что там как раз то, о чём я и написал в своё сообщении |
12.02.2014, 15:04 | #7 |
Пользователь
Регистрация: 25.10.2012
Сообщений: 11
|
Все получилось, спасибо Slym
Рабочий код такой: Код:
Последний раз редактировалось makc9I; 12.02.2014 в 15:07. |
12.02.2014, 15:11 | #8 |
Пользователь
Регистрация: 25.10.2012
Сообщений: 11
|
Serge_Bliznykov, я догадываюсь, что задачу можно решить гораздо изящней и красивей, написал первое, что пришло в голову. Мой опыт разработки на делфи сводится к написанию пятерки программ, обрабатывающих всякие данные из DBF и прочего и формирующие ответы. А мои знания в этой среде сводятся к компьютерной школе, законченной 8 лет назад, школьным знаниям, базированным на Паскале, ну и с десяток программ, написанных в универе.
Я программист по образованию, но не по профессии, т.е. опыта у меня около нуля. Именно поэтому мой код, вероятнее всего, отдает душком, и действительно его можно назвать индусским. |
12.02.2014, 19:02 | #9 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Application.ProcessMessages; в таймере не нужен
Не стесняемся, плюсуем!
|
12.02.2014, 22:36 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вы не правы!
если на таймере будет висеть код типа: Цитата:
Таймер позволит избавиться от цикла со Sleep, тут, безусловно - ГУД! Но между repeat .. until тоже ProcessMessages будет полезен! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c# и ms sync framework - отслеживание заменяемых файлов до синхронизации | Vygor | C# (си шарп) | 1 | 07.06.2012 18:03 |
.NET Алгоритм проверки каждые n мсек наличие файла в текущей директории | omigos99 | Общие вопросы .NET | 2 | 10.12.2011 19:37 |
Чтение файлов из директории | WarAngel.alk | PHP | 2 | 22.10.2011 18:45 |
Программа получения списка файлов директории и изменения атрибутов файлов | roma86 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 09.06.2009 09:08 |
Отслеживание создания файлов | 5naip | Общие вопросы Delphi | 4 | 18.07.2008 14:53 |