Dateisystem mit Datenbank synchronisieren


Danielku15

Erfahrenes Mitglied
#1
Hallo Community.

In meinem aktuellen Projekt möchte ich ein System ähnlich der Funktionsweise wie Google Picasa (Desktop Anwendung) umsetzen. Ich möchte dem Benutzer die Möglichkeit geben mehrere Ordner innerhalb der Dateisystemhierarchie zu selektieren welche dann nach einem Speziellen Dateityp gescannt werden. Die Metadaten der Dateien werden dann in eine lokale Datenbank übertragen in welcher zu den Dateien Zusatzinformationen (Genre, Auflösung etc.) hinterlegt werden können.

Mein Problem liegt nun darin das Dateisystem ordentlich mit der Datenbank synchron zu halten. Während der Laufzeit könnten Änderungen mit dem FileSystemWatcher erkannt werden doch das löst nicht das Problem das Dateisystem auch über mehrere Programmaufrufe synchron zu halten. Gibt es zu dieser Problematik irgendwelche Ansätze/Lösungsideen? Schließlich müssen einige Aspekte beachtet werden:

  • Erkennen neuer Dateien
  • Erkennen verschobener Dateien / Ordner
  • Erkennen gelöschter Dateien
  • Erkennen ersetzter Dateien
  • Befinden Sich Dateien auf einem externen Medium sollen die Einträge einfach ignoriert werden. (flag?)
  • ...

Da die Dateien auch gerne mal mehrere GB groß werden können, ist ein komplettes File Hashing nicht unbedingt optimal um Dateien zu erkennen. Es gibt ja eine Menge an Anwendungen für das Verwalten von Medien. Da gibt es doch sicher auch entsprechende Lösungsansätze wie ein solch zentrales "Dateirepository" aktuell gehalten werden kann.

Kann mir jemand Helfen.

Grüße
Daniel