Загрузить изменения, внесенные в файл (FTP) - PullRequest
0 голосов
/ 11 октября 2011

Я делаю какой-то клиент FTP Uploader.Я могу загружать файлы, но я не знаю, как загрузить изменения, внесенные в файл.Когда я говорю об изменениях, я имею в виду не то, что файл был переименован, а когда его содержимое изменилось.Например, у меня есть файл * .rar (достаточно большой) с некоторыми файлами в нем.Когда я добавляю какой-то новый файл, я не хочу, чтобы загружался весь * .rar, только часть, которая изменилась.Я знаю о WebRequestMethods.Ftp.AppendFile, но он добавляется только в конце файла, и что если изменения применяются в середине?Я получу ненужный файл ... Я прочитал о "двоичном дифференциале" и видел пару клиентов, которые вносят изменения прямо на сервере (FileZilla, Direct FTP, ALFTP)

1 Ответ

1 голос
/ 11 октября 2011

На самом деле, если файлы в вашем RAR-архиве изменены - вам нужно пересобрать и заново загрузить весь архив.

FTP-ресурс не сохраняет историю того, какие файлы были изменены или переименованы.Итак, единственное решение:

  1. Сохранение списка файлов в каком-то xml-формате в клиентском приложении.
  2. Когда вы получаете список файлов из ftp - сравните, если со списком файловв вашей истории xml.

Эти два шага не помогут вам найти, какие файлы были переименованы, но предоставят вам информацию о том, какие файлы удалены или добавлены.

Сравнение, еслиФайл был изменен, можно сделать, сохранив в своей истории размер файла их.Если вам нужна более точная проверка, вы можете сгенерировать CRC для файлов:

http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net

, но генерация CRC - очень долгая задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...