Creo que lo que está buscando es una forma de controlar cuándo se cambian los archivos. Luego, simplemente puede cargar el archivo modificado a través de FTP como lo mencionó. Si este es el caso, la respuesta es vincularse a los eventos Carpeta y Archivo de Windows. Aquí es un buen artículo sobre cómo hacerlo:
http://www.codeproject.com/KB/files/MonitorFolderActivity.aspx
El código necesario para FTP un archivo se puede encontrar aquí:
http://msdn.microsoft.com/en-us/library/ms229715.aspx
Todo esto es suponiendo que se va a estar usando C#. Si vas a utilizar un idioma diferente, necesitarás realizar las mismas acciones básicas de la misma manera básica, pero la sintaxis será diferente.
Para empezar, esto es todo lo que necesita. Miras la carpeta para ver los cambios en cualquiera de los archivos. Cuando vea un cambio, cargue el archivo modificado a través de FTP (si ese es su método de transporte web deseado) a la ubicación remota. Por supuesto, necesitaría hacer lo opuesto para otros clientes. Tendrían que suscribirse a eventos en su servidor que les indicaban que descarguen las últimas versiones de los archivos modificados. Finalmente, necesitaría aplicar su propia lógica comercial para cosas como la frecuencia con la que desea que las cargas sucedan, si desea que el registro esté habilitado para los cambios, si va a hacer versiones de archivos, etc.
¿Estás diciendo que quieres hacer lo mismo que Dropbox en una Mac a pesar de que funciona bien en una Mac o estás diciendo que quieres saber cómo se hizo en la Mac? – IAmTimCorey
Quiero saber cómo se hace en una Mac. – CodeGuy