Such-Engine im Eigenbau

Dateien auf Gleichheit prüfen

Dateien auf Gleichheit prüfen

© Archiv

Durch Anwahl der Funktionstaste [F2] legen Sie die Schnittstelle zum Suchobjekt im Objektbrowser übersichtlich offen.

Die Funktion CheckFile prüft die Suchoptionen für eine bestimmte Datei. Die Funktion erhält das Dateiverzeichnis über den Parameter StartPath, den Dateinamen samt Suchpfad über den Parameter dFile sowie das zugehörige FileInfo-Objekt zur Datei über den Parameter fi. Innerhalb der Funktion wird zunächst die Aufrufanzahl mitgezählt und in der Variablen Entries gesichert.

Die Aufrufanzahl der Funktion ist identisch mit der Anzahl der aktuell verarbeiteten Dateien. Das Ereignis EntriesCounter hält den Wert fest. Ferner werden die Informationen zur aktuell verarbeiteten Datei mithilfe des Ereignisses AnalyseFile veröffentlicht.

Untergeordnete Funktionen mit dem Prefix Has prüfen eine aktuelle Datei über das zugehörige FileInfo-Objekt auf die vorgebenene Dateigröße (HasCorrectSize), ein korrektes Kürzel (HasCorrectSuffix), den vorgegebenen Dateinamen (HasCorrectName), die erforderlichen Dateiattribute (HasCorrectAttributes), die gewünschten Datumsinformationen (HasCorrectTimeStamp) und erforderliche Wortinhalte (HasCorrectSearchedWords).

Jede dieser Prüffunktionen liefert das Ergebnis jeweils als Wahrheitswert an die aufrufende Funktion CheckFile zurück. Liefert eine Teilfunktion den Wert False zurück, wird die verarbeitete Datei nicht in die Trefferliste aufgenommen und die weitere Verarbeitung unmittelbar abgebrochen.

Werden alle Suchoptionen erfüllt und liefern entsprechend alle Prüffunktionen den Wert True zurück, dann wird die Anzahl der gefundenen Treffer über die Variable FoundEntries erhöht und über das Ereignis FoundEntriesCounter veröffentlicht. Entsprechend wird auch die gefundene Datei über das Ereignis NewFile nach außen hin bekannt gemacht.

Die Anzahl der gefundenen Dateien wird anschließend in Bezug zur Eigenschaft MaxEntries gesetzt. Dies sorgt mitunter dafür, dass die Variable Cancel auf True gesetzt und einhergehend damit die Suche vorzeitig beendet wird.

Private Sub CheckFile
(ByVal StartPath As String, ByVal dFile As String, ByVal fi As FileInfo)
Entries = Entries + 1
RaiseEvent EntriesCounter(Entries)
RaiseEvent AnalyseFile(dFile, fi)
Try
If Not HasCorrectSize(fi)
Then Exit Sub
If Not HasCorrectSuffix(fi)
Then Exit Sub.....
...If Not HasCorrectTimeStamp(fi)
Then Exit Sub
If Not HasCorrectSearchedWords(fi)
Then Exit Sub
Catch ex As Exception
MsgBox(ex.Message)
End Try
FoundEntries = FoundEntries + 1
RaiseEvent FoundEntriesCounter
(FoundEntries)
RaiseEvent NewFile(dFile, fi)
If Me.MaxEntries > 0 Then
If FoundEntries >=
MaxEntries Then
Cancel = True
End If
End If
End Sub

Die eigentlichen Prüffunktionen werten die dateispezifischen Informationen aus, die über den Parameter fi vom Typ FileInfo übergeben werden. Sie werden einheitlich mit den zuvor gesetzten und zugeordneten Sucheigenschaften verglichen.

Als Ergebnis liefern alle Prüffunktionen einen Wahrheitswert zurück, der angibt, ob die angegebenen Suchoptionen mit den entsprechenden Dateieigenschaften übereinstimmen (True) oder nicht (False). Mithilfe der per RaiseEvent ausgelösten Ereignisse lassen sich die Suchergebnisse später direkt im Dialog ausgeben.

Dateigrößen prüfen

Die benutzerdefinierte Funktion HasCorrectSize prüft, ob die geforderte Dateigröße, die über die Eigenschaften MinSize und MaxSize festgelegt werden kann, mit der aktuellen Dateigröße übereinstimmt. Wird die Mindestdateigröße nicht erreicht oder aber die maximale Dateigröße überschritten, so liefert die Funktion das Ergebnis False an das aufrufende Programm zurück.

Function HasCorrectSize(ByVal fi As File
Info) As Boolean
If MinSize > -1 And MinSize > fi.Length
Then
Return False
End If
If MaxSize > -1 And MaxSize < fi.Length
Then
Return False
End If
Return True
End Function

Wie Sie Dateikürzel, Dateinamen, Dateiattribute, vorhandene Datumsstempel sowie Wortlisten bei der Suche auf Übereinstimmung mit angegebenen Suchoptionen prüfen und die Suche an Dialoge für die Ausgabe binden sowie die definierten Ereignisse praktisch verarbeiten, zeigt der letzten Teil. Bleiben Sie also am Ball, es lohnt sich!

Mehr zum Thema

HTML 5
Webgestaltung

Google Web Designer ist spezialisiert auf HTML5. Ein Vorteil dieses Standards ist das einfache Einbinden von Videos mit dem Element video. Wir zeigen…
Wir verraten, wie Sie Fritzboxen und andere Router vor Hackern schützen.
Fritzbox, Asus, Belkin und Co.

Fritzbox, Asus, Belkin oder DLink - die Liste der geknackten Router ist lang. Hacker stahlen Passwörter oder NAS-Daten. So machen Sie Ihren Router…
Wir führen Sie zur eigenen Windows-App - unserem PC-Magazin-RSS-Feed.
C# und XAML

Wir zeigen, wie Sie Windows 8.1 Apps selbst programmieren können. Lernen Sie das App erstellen an Hand unseres Beispiels: dem RSS-Feed von PC…
Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1
Programme richtig installieren

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.
Windows 8: Starbildschirm
Microsoft Project Siena

Erstellen Sie sich selbst eine App für Windows 8, die auf alle Funktionen Ihres Tablets zugreifen kann, inklusive Kamera, Mikrofon und Lautsprecher.…