Sincronizar carpeta contenedora de XML's con tabla de BD

Saludos H. Foro de JavaMéxico...

Tengo la siguiente situación...

Quisiera almacenar en una BD información en archivos XML que se contienen en una carpeta, dicha carpeta se actualiza indefinidamente, para lo cual se me ocurre crear una aplicación que me permita sincronizar el contenido de la carpeta con la tabla en la cual se almacenará esa información, pero no se como hacer esta sincronización sin tener que duplicar la información sincronizada o contenida en la tabla anteriormente...
no se me ocurre nada...

Agradecería me sugirieran alguna alternativa

.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Nombre del archivo

Algo que asegura el sistema operativo es que no hay dos archivos con el mismo nombre dentro de una carpeta, entonces puedes utilizar ese criterio para realizar la sincronización. Algo interesante seria la sincronización de archivos modificados. ¿Como detectas que un archivo fué modificado? hoy en dia se utilizan algoritmos de hash/resumen/picadillo/digestion/etc que te permiten verificar rapidamente una modificación mínima, los archivos que sincronices tienes que aplicarles ese(esos) algoritmo(s) que comunmente son MD5 o SHA1.

Aplicando SHA1 sobre un archivo tendrias algo similar a:

fafcaa010d6443bdfa350030837fb2ffd9d12677

Para el caso del MD5:

884825486aa05f5e38a8ca79ab6d8a7a

Estos datos los puedes almacenar en la DB junto con tu archivo y cuando estes realizando la sincronización, realizas el hash sobre cada archivo de la carpeta y si existe en DB y el Hash es diferente, sabes que se trata de una modificación al archivo.

Imagen de jasistemas

Yo optaria por usar una

Yo optaria por usar una carpeta intermedia.
\01-XMLS origen
\02-XmlsFinales

Asi, solo voy leyendo los XMLs de la carpeta origen, leo el contenido del XML y lo meto a la database, luego MUEVO el XMl a la carpeta final.

Si son XMls de factura electronicas por ejemplo, separo las facturas por año, para que no se haga una locura luego respaldar y recuperar.