Hallo Leute,
mein kleines Projekt neigt sich langsam dem Ende, allerdings habe ich noch eine Hürde zu nehmen, bei der ich nochmal eure Unterstützung bräuchte.
Folgendes, Ich habe inzwischen eine Möglichkeit gefunden den Windows Indexdienst zu nutzen um bestimmte Schlüsselworte in Dateien zu suchen. Als Ergebnis aus dieser Aktion erhalte ich ein Array mit DateiPfad + Dateiname als String. Im Moment lasse ich mir das Array als Liste anzeigen und verpasse den Einträgen einen Link zur Datei. Allerdings würde ich gerne den Komfort des Windows Explorer nutzen. z.B. die Dateivorschau oder das Sortieren nach Datum letzter Änderung/Dateigröße/Dateiname/usw.
Da ich nur ungern diese Funktion nachbauen möchte, stellt sich natürlich die Frage, kann ich dem Explorer eine Liste von Dateien übergeben, die er dann ähnlich dem suchen Fenster, anzeigt?
Hier der Code, der mir die Dateien findet
Gesucht wird nach dem Wort in der Variable "sBasis"
Die Liste der Dateien , die den Suchbegriff beinhalten, werden in Stringform in dem Array "Dateiliste()" gespeichert.
Hat dazu jemand Erfahrungswerte? Oder zumindest einen Ansatz?
Grüße Darkscale
PS: Wenn mir jemand noch einen generellen Tipp zu meinem Code geben möchte, der ihn kürzer/eleganter macht, dann immer raus damit.
mein kleines Projekt neigt sich langsam dem Ende, allerdings habe ich noch eine Hürde zu nehmen, bei der ich nochmal eure Unterstützung bräuchte.
Folgendes, Ich habe inzwischen eine Möglichkeit gefunden den Windows Indexdienst zu nutzen um bestimmte Schlüsselworte in Dateien zu suchen. Als Ergebnis aus dieser Aktion erhalte ich ein Array mit DateiPfad + Dateiname als String. Im Moment lasse ich mir das Array als Liste anzeigen und verpasse den Einträgen einen Link zur Datei. Allerdings würde ich gerne den Komfort des Windows Explorer nutzen. z.B. die Dateivorschau oder das Sortieren nach Datum letzter Änderung/Dateigröße/Dateiname/usw.
Da ich nur ungern diese Funktion nachbauen möchte, stellt sich natürlich die Frage, kann ich dem Explorer eine Liste von Dateien übergeben, die er dann ähnlich dem suchen Fenster, anzeigt?
Hier der Code, der mir die Dateien findet
VB.NET-Quellcode
- Private Sub BtnCatSearch_Click(sender As Object, e As EventArgs) Handles BtnCatSearch.Click
- Dim iZaehler As Integer = 0
- Dim connection = New OleDbConnection("Provider=Search.CollatorDSO;Extended Properties=""Application=Windows""")
- connection.Open()
- Dim query = "SELECT System.ItemPathDisplay FROM SystemIndex WHERE SCOPE ='file:" & MyCatalog & "\' AND CONTAINS('%" & sBasis & "%')"
- Dim command = New OleDbCommand(query, connection)
- Try
- Using reader As OleDbDataReader = command.ExecuteReader()
- If reader.HasRows Then
- While reader.Read()
- Dateiliste(iZaehler) = reader(0).ToString
- iZaehler = +1
- End While
- Else
- MsgBox(sBasis & " nicht gefunden!", vbOKOnly)
- End If
- End Using
- Catch ex As Exception
- Console.WriteLine("Unbekannter Befehl!")
- End Try
- connection.Close()
- ReDim Preserve Dateiliste(iZaehler)
- For i = 0 To iZaehler - 1
- Debug.Print(Dateiliste(i))
- Next
- If iZaehler > 0 Then Searchresult.ShowDialog()
- End Sub
Gesucht wird nach dem Wort in der Variable "sBasis"
Die Liste der Dateien , die den Suchbegriff beinhalten, werden in Stringform in dem Array "Dateiliste()" gespeichert.
Hat dazu jemand Erfahrungswerte? Oder zumindest einen Ansatz?
Grüße Darkscale
PS: Wenn mir jemand noch einen generellen Tipp zu meinem Code geben möchte, der ihn kürzer/eleganter macht, dann immer raus damit.
Wer nichts weiß ist nicht Dumm sondern unwissend!
VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!
VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!