Ich bin (schon etwas länger) dabei eine kleine Suchfunktion zu basteln. Sie funktioniert jetzt, aber es gibt leider erhebliche Einschränkungen und ich hoffe diese mit eurer Hilfe lösen zu können. Ich muss dazu sagen, dass ich kein Programmierer bin und meine Schwerpunkte in anderen Bereichen vorhanden sind. Daher hoffe ich auf stärkere Hilfe als nur kleine Denkanstöße. (Das heißt aber nicht, dass ihr mir den Code vorkauen sollt)
1) Die Suche funktioniert nur auf Netzlaufwerken. Auf den Laufwerken direkt am Computer (also beispielsweise c:\) gibt es einen Fehler. Wieso?
2) Es dauert ewig bis ein Ergebnis angezeigt wird. Ich hätte gerne, dass gefundene Dateien direkt angezeigt werden, so wie bei der windowseigenen Suche. Ein Fortschrittsbalken wäre ebenfalls hilfreich, aber nicht zwingend.
3) Ich habe zwei Spalten gemacht. Datei (colDatei) und Ort (colOrt). Ich weis aber nicht, wie ich in der Spalte "Ort" ein Ergebnis anzeigen lassen kann. (erledigt)
4) Momentan werden nur Worddokumente gesucht. Wie man eine ordentliche Verzweigung macht, dass nach den Dokumenten gesucht wird die auch ausgewählt worden sind weis ich noch nicht, aber damit würde ich mich dann erst einmal alleine befassen, sobald die Punkte 1-3 abgedeckt sind
5) Ich würde in der Liste der Ergebnisse gerne ein Dokument öffnen können. Auch damit würde ich mich alleine befassen wollen, wäre über einen kleinen Tipp wonach ich suchen muss dankbar. (contextMenueStrip1 habe ich schon)
Es ist mir nicht wichtig, dass das Tool in perfekt optimierter Programmierung geschrieben wurde. Es soll im wesentlichen funktionieren und (noch wichtiger) nachvollziehbar sein. Daher verzichte ich (vorerst) auf eigene Funktionen. Hier ist der Code, darunter ein Bild der Benutzeroberfläche.
1) Die Suche funktioniert nur auf Netzlaufwerken. Auf den Laufwerken direkt am Computer (also beispielsweise c:\) gibt es einen Fehler. Wieso?
2) Es dauert ewig bis ein Ergebnis angezeigt wird. Ich hätte gerne, dass gefundene Dateien direkt angezeigt werden, so wie bei der windowseigenen Suche. Ein Fortschrittsbalken wäre ebenfalls hilfreich, aber nicht zwingend.
3) Ich habe zwei Spalten gemacht. Datei (colDatei) und Ort (colOrt). Ich weis aber nicht, wie ich in der Spalte "Ort" ein Ergebnis anzeigen lassen kann. (erledigt)
4) Momentan werden nur Worddokumente gesucht. Wie man eine ordentliche Verzweigung macht, dass nach den Dokumenten gesucht wird die auch ausgewählt worden sind weis ich noch nicht, aber damit würde ich mich dann erst einmal alleine befassen, sobald die Punkte 1-3 abgedeckt sind
5) Ich würde in der Liste der Ergebnisse gerne ein Dokument öffnen können. Auch damit würde ich mich alleine befassen wollen, wäre über einen kleinen Tipp wonach ich suchen muss dankbar. (contextMenueStrip1 habe ich schon)
Es ist mir nicht wichtig, dass das Tool in perfekt optimierter Programmierung geschrieben wurde. Es soll im wesentlichen funktionieren und (noch wichtiger) nachvollziehbar sein. Daher verzichte ich (vorerst) auf eigene Funktionen. Hier ist der Code, darunter ein Bild der Benutzeroberfläche.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Suche
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cmbLaufwerk.Items.AddRange(Environment.GetLogicalDrives());
}
private void cmdSuchen_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
string path = cmbLaufwerk.Text;
string searchPattern = "*"+txtSuchbegriff.Text+"*";
try
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles(searchPattern, SearchOption.AllDirectories);
foreach (FileInfo file in files)
{
if ((file.Name.Contains(txtSuchbegriff.Text)) && (file.Extension == ".doc"))
{
listView1.Items.Add(file.Name);
}
}
}
catch
{
MessageBox.Show("Es ist ein Fehler aufgetreten");
}
}
private void dateiToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void überToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 NeuesFenster = new Form2();
NeuesFenster.ShowDialog();
}
}
}
Anhänge
Zuletzt bearbeitet: