Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > отслеживать изменения файловых ресурсов |
Автор: denix 20.3.2009, 20:02 |
Всем привет. подскажите пожалуйста как с помощью стандартного С++ можно отслеживать изменения файловых ресурсов(например, есть корневая папка, мне нужно чтобы программа отслеживала изменения файловых ресурсов, т.е. появление новых файлов и папок, их удаления, изминения) |
Автор: Vaulter 20.3.2009, 20:29 | ||
Исходники rsync: http://samba.anu.edu.au/ftp/rsync/
Там, скорее всего, ты найдешь ответы на все свои вопросы... и не много больше ![]() |
Автор: Rififi 20.3.2009, 20:32 |
denix, Никак. C++ не поддерживает такие возможности. |
Автор: denix 20.3.2009, 21:35 |
ясненько, но ведь же Windows или же проводник как то изминения отслеживает согласитесь |
Автор: leneCaress 20.3.2009, 21:38 |
да - в стандартных библиотеках с++ такого нету... если вам нужно получать события от ФС (ТЕ както реагировать на изменения файлов): - вы под линуксом - копайте в сторону inotify... - если под виндой - в сторону FindFirstChangeNotification если нужно что-то вроди синхронизации - лучше чем rsync ничего не видела |
Автор: denix 20.3.2009, 23:06 |
спасибо за ответы всем участникам но мне нужна не синхронизация, а написать программу, которая отслеживает появление/изминение файлов, не знаю сна чем зацепиться |
Автор: andrew_121 21.3.2009, 10:11 |
Это в раздел по WINAPI. |
Автор: denix 21.3.2009, 20:08 |
а без винапи возможно написать? может есть какие варианты? |
Автор: leneCaress 21.3.2009, 21:42 |
хм... winapi это программный интерфейс самих виндов. любая программа для полноценной работе под виндой его использует. без него - никак. может быть у вас есть какая-то библиотека (mfc, vcl, qt....) которая работает поверх winapi и предоставляет удобный абстрагирующий интерфейс... но: если вам нужно серьезно взаимодействовать с ОС - извените - но придется работать с winapi даже могу допустить что вам удастся найти библиотеку которая за вас будет вызывать winapi... но без него всеравно никуда ![]() |
Автор: andrew_121 22.3.2009, 10:20 | ||
Я в основном юзаю Qt. В нем есть все объекты для решения поставленной задачи. QFileSystemWatcher |
Автор: denix 24.3.2009, 13:53 | ||
тут написано http://ru.wikipedia.org/wiki/Rsync
1)никак не пойму зачем и что такое rolling checksum? 2) понятно, что Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска и сервер делает тоже самое со своей копией этого файла непонятно для чего он считает для, цитирую: "Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски" Для чего он это делает? если он просто может сравнивать хеши кусков файла? |
Автор: Vaulter 30.3.2009, 01:13 | ||||
denix, ой, чтото мне тоже страшно стало ![]()
для слежения за изменением чеголибо - сохрани старое состояние, через промежуток времени посмотри новое - сравни ![]() как в с++ это решить я не скажу, но в bash:
|