Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2012, 02:42   #1
4Dragon
 
Регистрация: 17.06.2012
Сообщений: 9
По умолчанию Алгоритм синхронизации папок (Webdav)

Решил я написать прогу, работающую с Яндекс.Диск'ом, т.к. их стандартная прога довольно убога. Но проблема появилась уже на стадии создания алгоритма. Получилось примерно так:

1. Сканируем файлы и папки на компе и на сервере.
2. Если файла (или папки) нет на сервере или на компьютере, то копируем файл с сервере на комп или с компа на сервер.
3. Если файл есть и на сервере и на компьютере, то сравниваем файлы. Если файлы не равны, то сравниваем даты и копируем поздний файл на сервер или компьютер.

Проблема:

Исходные данные: 2 юзера с компами и сервер.
Итак, представим ситуацию:
1-й юзер удаляет из синхронизируемой папки на компе файл. Прога при сканировании это обнаруживает и согласно пункту 2 копирует этот файл с сервера на комп. Таким образом получается, что пользователь не может удалить файл.

В этом случае 2-й пункт можно заменить на:
2. Если файла (или папки) нет на сервере или на компьютере, то УДАЛЯЕМ файл с сервере или компа.

Но вылезет другая проблема. Допустим:
1-й юзер создает файл в синхронизируемой папке на компе. Прога при сканировании это обнаруживает и согласно пункту 2 удаляет этот файл с компа (т.к. его нет на серве). Таким образом получается, что пользователь не может создать файл.

Пожалуйста, помоги с алгоритмом, а то уже задолбался. Заранее благодарен.
4Dragon вне форума Ответить с цитированием
Старый 12.10.2012, 08:19   #2
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Ну так посмотрите как подобные программы работают, какие данные хранит тот же десктопный клиент Яндекс.Диска, Dropbox, 4Share, и т.д. или программы для синхронизации типа GoodSync, Coban Backup и т.п. в каталогах с рабочими данными и настройками (AppData, LocalSettings\AppData), или те же системы контроля версий.
Как правило хранят списки файлов с датой последнего изменения и контрольными суммами. Причем хранится может и у клиента и на сервере (либо на отдельном сервере в БД, либо в том же хранилище в каком-нидь спец. каталоге, с именем которое маловероятно совпадет с именем каталога с пользоват данными.

Ну а далее все это дело мониторится сравнивается, изменяется и т.д.
astecenko вне форума Ответить с цитированием
Старый 12.10.2012, 14:31   #3
4Dragon
 
Регистрация: 17.06.2012
Сообщений: 9
По умолчанию

Ссылки на алгоритмы "подобных программ" не подскажете? Дизасемблировать что-то не хочется.

P.S. Кстати, система работы Dropbox'а не подойдет, т.к. в нем нельзя удалять файлы, созданные другим пользователем (Предполагается, что прога будет работать на нескольких компах)

Последний раз редактировалось 4Dragon; 12.10.2012 в 14:37.
4Dragon вне форума Ответить с цитированием
Старый 12.10.2012, 15:11   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

я писал о том что о алгоритме работы "подобных программ" можно судить по рабочим данным которые они сохраняют у клиента. Как правило эти данные хранятся в профиле пользователя ОС, в Windows в каталогах %AppData% и %LOCALAPPDATA% в подкаталоге с названием сервиса/программы/фирмы.
Естественно нужно не забывать о применении Cerebrum humanum, полезная вещь ;-)
astecenko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WebDav клиент на дельфи alekola Работа с сетью в Delphi 6 24.11.2014 17:20
Объекты синхронизации f.hump Windows 0 03.09.2012 15:58
Автоматизация синхронизации tim900 Помощь студентам 2 14.02.2012 14:45
Метод синхронизации kos1nus PHP 4 08.09.2011 08:42
Проблема синхронизации. beda Microsoft Office Word 3 30.06.2010 13:37