2009-05-03 6 views
0

Я ищу для написания программы (.Net) для резервного копирования файлов на компьютер. Как я могу узнать о том, какие файлы были изменены для резервного копирования (я не хочу каждый раз проверять последние измененные даты.Резервный алгоритм

Есть ли резервные алгоритмы для резервного копирования только битов файла. Какие обозначения вывода для алгоритма

ответ

1

Может ли я предлагаю в поисках «Rsync для окон» в вашей любимой поисковой системе

0

Вот очень хороший простой материал я использую для резервного копирования в моем сценарии:? http://www.mikerubel.org/computers/rsync_snapshots/ .

Исходя из этого, первым подходом было бы создание базы данных с файловыми и сравнить/обновить их каждый раз, когда вы делаете резервную копию. Помимо даты и времени, я бы также сохранил размер файла и добавил его в сравнение.

2

Проверьте archive bit. Это может быть то, что вы хотите.

В .NET это System.IO.FileAttributes.Archive, который может использоваться с SetAttr в VB, или System.IO.FileInfo.Attributes или System.IO.File.SetAttributes().

Любой алгоритм, который проверяет последнее измененное время или бит архива, будет зависеть от количества каталогов на диске. Поскольку оба атрибута хранятся в каталоге, время будет зависеть от файловой системы и уровня кэширования. Более эффективным способом анализа эффективности резервного копирования может быть просмотр количества измененных блоков.

1

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

Таким образом, сложность будет O (n), где n - количество файлов.

Смежные вопросы