|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 93
|
|
Наблюдение за папкой, используя inotify25.03.2013, 17:02. Показов 3411. Ответов 11
Метки нет (Все метки)
Здравствуйте! Существует общая папка большой сети, к которой каждый пользователь компьютера сети имеет доступ как и чтения так и записи. Я делаю программу в QT Creator на языке C++ для ОСи - Ubuntu, используя Inotify(т.к C++, то в моём случае - inotify-cxx), которая должна наблюдать за изменениями папки(создание файла, переименование, удаление...).
Переименование в Unix системах проходит двумя событиями - IN_MOVED_FROM и IN_MOVED_TO. Мне программа это впринципе и выдаёт, что верно! Но хотелось бы, чтобы вместо двух этих событий было одно - IN_RENAMED В Inotify для этого якобы существуют "cookies", даже пишут что только для события Переименования эти Куки и нужны, но НИГДЕ я не нашёл примера использования этих куков... Поэтому я здесь...нуждаюсь в помощи в решении этого вопроса. P.S. В Windows это делается в 1000 раз проще
0
|
|
| 25.03.2013, 17:02 | |
|
Ответы с готовыми решениями:
11
Как отслеживать и соответственно вовремя изменить картинку с закрытой папкой на картинку с открытой папкой? Не могу разобраться с папкой Desktop и скрытой папкой Public Desktop Работа с inotify |
|
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
|
||||
| 26.03.2013, 03:36 | ||||
|
Если бы делал программу в какой-нибудь IDE типа Anjuta, то вопрос бы задавал в форуме по GTK? Такая что ли логика? Добавлено через 7 минут
1
|
||||
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 93
|
||||
| 26.03.2013, 23:56 [ТС] | ||||
![]() Но! Также я надеюсь, что кто-нибудь опишет, как же использовать cookies в Inotify. Добавлено через 4 часа 25 минут Я уже опробовал QFileSystemWatcher в действии, очень удобный класс. Но, к сожалению, я не нашёл способа обрабатывать события. Мне нужно сортировать события. Для визуального представления: Человек локальной сети создаёт файл в папке, за которой следит программа. Программа должна выдать следующее: ["время": CREATED "путь и имя файла"] Аналогично при Переименовании, Удалении...
0
|
||||
|
|
||
| 27.03.2013, 09:25 | ||
|
Что бы узнать что и как изменилось, надо задействовать QFileInfo и его методы: lastModified(), lastRead() и т.п. Т.е. алгоритм примерно такой будет: QFileSystemWatcher выдает сигнал об изменении файла, на этот файл напускаем QFileInfo и выдаем дату изменения. Если добавлен/удален файл, тогда QFileSystemWatcher выдаст сигнал об изменении папки, сравниваем с предыдущим состоянием (состояние надо будет хранить) и выводим изменения.
1
|
||
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 93
|
|
| 27.03.2013, 14:00 [ТС] | |
|
oxotnik, Спасибо за ответ. Сейчас же буду пробовать вами предложенный класс с его методами.
P.S. Я более чем уверен, что QFileSystemWatcher содержит в себе Inotify(или основан на Inotify), который умеет сортировать события. Просто класс ущемил, подавил некоторые возможности... Очень очень сильные программисты смогут получить события от QFileSystemWatcher... Но это не суть важно
0
|
|
|
|
||
| 27.03.2013, 14:30 | ||
|
Т.е. если качаешь либы для линукса, то он через inotify, если для винды качаешь - через ВинАпи работает. Просто для любых платформ от предоставляет одинаковый интерфейс работы.
0
|
||
|
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 93
|
|
| 27.03.2013, 23:09 [ТС] | |
|
Что-то не получается у меня с QFileInfo
Но вы мне все и так очень сильно помогли. Спасибо всем!
0
|
|
| 28.03.2013, 10:06 | ||
|
0
|
||
|
|
||
| 28.03.2013, 10:30 | ||
|
0
|
||
| 28.03.2013, 10:30 | |
|
Помогаю со студенческими работами здесь
12
Наблюдение Наблюдение Наблюдение Скрытное наблюдение Любопытное наблюдение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|