Datei-Finder: technische Beschreibung

KoBox DataTools: File-FinderDer Datei-Finder ist vollständig in C#, mit der Community Edition von Microsoft Visual Studio 2015/2017, entwickelt worden. Er besteht im Wesentlichen aus drei Komponenten.

  • den Daten-Lesern (für Bilder, Office Dokumente, PDF etc.)
  • dem Aufbau und Abgleich des Volltextes der gelesenen Dokumente
  • dem Nutzerinterface

Daten-Leser

Die Daten-Leser benutzen Schnittstellen zu offenen Bibliotheken (opendocument), direkte Anbindungen an Office-Produkte via Interopassemblys, proprietären DLLs (PDF Clown) sowie direkt im Datei-Finder ausprogrammierten Anknüpfungen für Bilder, MP3 (ID3V1) und Text.

Alle Daten-Leser extrahieren aus den jeweiligen Dokumenten Texte, die zu einer Suche verwendet werden können. Im Fall von Word-Dokumenten ist dies noch recht offensichtlich der Volltext, in Excel-Dateien gehört aber beispielsweise schon der Name des Tabellenblattes hinzu. Im Falle der Bilder werden nur Metadaten ausgelesen. Sowohl die für eine Suche verwendbaren Exif Daten, wie beispielsweise der Name der Kamera, als auch die weitaus ausführlicheren IPTC Daten werden ausgelesen. Der Daten-Leser für Musik-Dateien wertet die bekannten Musikinformationen der MP3 Files ID3 aus. Vielleicht weniger bekannt ist die Tatsache, dass diese auch den gesamten Liedtext enthalten können. Dies habe ich jedoch nur in sehr wenigen Fällen gesehen.

Alle Daten-Leser, die zum Einlesen der Text-Daten einen hohen Zeitaufwand erfordern, legen eine Kopie des Textes in lokalen Dateien ab. Bei einer erneuten Suche des entsprechenden Dateityps wird die Originaldatei nur noch geöffnet, wenn ebenfalls ein neuer Inhalt vermutet wird. Ist die Suche ohne diesen "Cache" schnell genug, wie beispielsweise die reine Text-Suche, ist dieser Umweg nicht erforderlich.

Aufbau und Abgleich des Volltextes

Der Datei-Finder kommt ohne Datenbank aus und speichert alle Daten offen und für jeden einsehbar in XML-Dateien. Für jeden Such-Typ wird ein eigenes Dokument angelegt. Bei jeder Suche findet nun ein Abgleich der XML-Datei mit den tatsächlich lokal gespeicherten Dokumenten statt. Die Suche nach den Begriffen findet nur in der XML-Datei statt. Ist das Dokument noch nicht in der XML-Datei angelegt oder es sind Änderungen in der Ursprungsdatei gefunden worden, so wird erst das aktuelle Dokument in die XML-Datei geschrieben. Auf diese Weise wird der Inhalt der XML-Datei immer aktuell gehalten. Die Dateien werden im Nutzerverzeichnis \Users\[Nutzer-Name]\AppData\Roaming\KoBox\File-Finder abgelegt. Wie man sich denken kann, kann das manuelle Ändern der Dateien zu falschen Suchergebnissen, aber auch zum vollständigen Defekt des Programmes führen.

Eine denkbare Erweiterung des Datei-Finders könnte darin liegen, die XML-Dateien pro Laufwerk zur Verfügung zu stellen. Somit könnten mehrere vernetzte Nutzer von einer Volltext-Datei profitieren.

Starte Suche

 

Nutzerinterface

Die Oberfläche der Anwendung ist zweisprachig, das Einbauen weiterer Sprachen, zumindest im Nutzerinterface, ist durch einfaches Anpassen des Ressource-Files möglich. Es wurde darauf geachtet ein möglichst schlankes Design mit wenig störende Elemente zu gestalten, so dass das Finden der Dateien immer im Mittelpunkt steht. Die Nutzeroberfläche merkt sich den letzten Zustand, die zuletzt gewählten Dokumenttypen, die Sucheinstellungen und auch den Suchbegriff, jedoch nicht das Ergebnis der Suche.

Um erweiterte Angaben zum Suchergebnis zu bekommen, ist die Möglichkeit des Speicherns des Ergebnisses gegeben. In dieser Ausgabe werden ebenfalls Dokumente aufgelistet, die nicht gelesen werden konnten und falls möglich der Grund, warum diese Dokumente nicht lesbar waren. In einigen Fällen helfen einfache Einstellungsänderungen um die Dokumente lesbar zu machen (siehe Trust Center reindex).

 

Virenscanner

Leider scheinen die aktuellen Virenscanner keine Freunde des Datei-Finders zu sein, wenn man darüber nachdenkt ist es eigentlich klar und berechtigt. Der Datei-Finder macht das, was auch einige Schadsoftware macht: Er durchsucht Verzeichnisse und sammelt die Daten. Ich habe 3 Virenscanner mit dem Datei-Finder getestet. Alle drei waren nicht so ganz einverstanden mit dem Programm, die Auswirkungen waren jedoch sehr unterschiedlich. Von einer strikten Überwachung der Dateiaktionen und somit einer riesigen Perfomance-Einbuße, bis hin zum vollständigen Blockieren des Programms, konnte ich alles beobachten. Eine echte Lösung hierfür kann ich leider nicht bieten, jedoch hoffen, dass durch eine Verbreitung des Tools das Vertrauen, auch bei den Scanner Herstellern, steigt.