crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Мониторинг директории
Гость_Гость_Андрей_*_*
сообщение 24.10.2010, 21:35
Сообщение #1





Гости








    


Привет всем. Столкнулся с проблемой - нужно мониторить директорию в реальном времени и если в ней появляется файл - перемещаем файл в другую директорию.
Вопрос не в том, как переместить файл, а в том как мониторить директорию. По сути нужно что-то типа службы.

Подскажите, кто с таким сталкивался. Заранее благодарен за предложенные решения проблем.
ЗЫ. Использую python, рассмотрю варианты примеров на других языках.
Отдельная просьба - пожалуйста, с описанием.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 24.10.2010, 21:48
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


А что тут такого. По таймеру с нужным интервалом вызываем функцию, получающую список файлов в директории и перемещающей файлы. Можно конечно перехватывать системные функции создания файлов, но это сложнее и не кроссплатформенно (к тому же на питоне такое точно не сделать)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Андрей_*_*
сообщение 24.10.2010, 22:12
Сообщение #3





Гости








    


Цитата
По таймеру с нужным интервалом вызываем функцию

А пример можно? :blush:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.10.2010, 2:48
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Гость_Андрей_*_* @ 25.10.2010, 1:12) *
А пример можно?
пример будет зависеть от средства разработки и целевой платформы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Андрей_*_*
сообщение 25.10.2010, 9:33
Сообщение #5





Гости








    


Кроссплатформенное приложение.
Я понимаю, что в QT каждый объект имеет объект time и можно использовать timeout на сигналах и слотах. Но в питоне нет ни сигналов, ни слотов. Собственный вариант:
while 1 :
ls()
sleep(15)

Интервал 15 секунд, но сами согласитесь, что бесконечный цикл - бред.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
CodeHunter
  опции профиля:
сообщение 25.10.2010, 9:45
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 26.8.2010
Пользователь №: 1982

Спасибо сказали: 1 раз(а)




Репутация:   0  


Вот юзай и будет тебе хорошо )))

QFileSystemWatcher
The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 25.10.2010, 10:01
Сообщение #7


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

Спасибо сказали: 32 раз(а)




Репутация:   3  


Цитата(CodeHunter @ 25.10.2010, 10:45) *
Вот юзай и будет тебе хорошо )))

QFileSystemWatcher
The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications.


Цитата
Но в питоне нет ни сигналов, ни слотов.

Эм...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
CodeHunter
  опции профиля:
сообщение 25.10.2010, 10:05
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 26.8.2010
Пользователь №: 1982

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(Гость_Гость_Андрей_*_* @ 24.10.2010, 21:35) *
рассмотрю варианты примеров на других языках.


напиши на с++ + куте
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Андрей_*_*
сообщение 25.10.2010, 12:35
Сообщение #9





Гости








    


Вот накатал:
# cat ls.py
#!/usr/local/bin/python

import time
import os

while 1:
    list = os.listdir('/usr/local/etc/test')
    print list
    time.sleep(15)

Вопрос - как тогда получить это событие от системы?
Еще раз спасибо за ответ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.10.2010, 15:49
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Андрей, если ты пишешь с использованием PyQt или PySide, то сигналы и слоты там есть.

И вообще если речь о Qt, то и место теме в соответствующем разделе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 5:05