Создайте папку как Dropbox, которая соединяется с удаленным местоположением - PullRequest
5 голосов
/ 07 мая 2011

Как я могу сделать папку, которая делает вещи. Конечно, Dropbox знает, когда файл помещается в папку, и этот файл синхронизируется. Как я могу сделать папку, которая делает то же самое, и что файлы, которые я помещаю в нее, идут в мой ftp?

Я пытаюсь сделать это на Mac (конечно, Dropbox отлично работает на Mac).

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Я считаю, что вы ищете способ отслеживать, когда файлы изменяются.Затем вы можете просто загрузить измененный файл через FTP, как вы упомянули.Если это так, ответ заключается в том, чтобы связать события Windows Folder и File.Вот хорошая статья о том, как это сделать:

http://www.codeproject.com/KB/files/MonitorFolderActivity.aspx

Код, необходимый для FTP файла, можно найти здесь:

http://msdn.microsoft.com/en-us/library/ms229715.aspx

Все это предполагает, что вы собираетесь использовать C #.Если вы собираетесь использовать другой язык, вам нужно будет выполнять одни и те же базовые действия одним и тем же основным способом, но синтаксис будет другим.

Для начала это все, что вам нужно.Вы смотрите папку на предмет изменений любого из файлов.Когда вы видите изменение, вы загружаете измененный файл через FTP (если это ваш желаемый метод веб-транспорта) в удаленное местоположение.Конечно, вы должны сделать обратное для других клиентов.Им нужно будет подписаться на события на вашем сервере, которые сказали им загружать последние версии измененных файлов.Наконец, вам нужно будет применить свою собственную бизнес-логику для таких вещей, как то, как часто вы хотите, чтобы происходили загрузки, если вы хотите, чтобы для изменений было включено ведение журнала, если вы собираетесь делать версионирование файлов и т. Д.

0 голосов
/ 07 мая 2011

Одним из решений (только для Windows + .NET) было бы запустить клиент и отслеживать папку с помощью FileSystemWatcher , а при возникновении события изменения выполнить соответствующее действие, необходимое для синхронизации с FTP.

...