Feedback

C# - Dateien auf Stichworte scannen

Veröffentlicht von am 06.12.2013
(1 Bewertungen)
Diese Funktion erstellt eine Liste der Vorhandenen Daten in dem angegebenen Verzeichnis und sucht in den gefundenen Daten nach den von ihnen angegebenen Stichworten. Die Stichworte werden von einem , ohne Leerzeichen getrennt.
GFU-Schulungen  [Anzeige]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

public void Scan(string PathToSearch, string Stichworte)
{
List<string> IList = Stichworte.Split(',').ToList();
List<string> FilesInDirectory = Directory.GetFiles(PathToSearch, "*.*",System.IO.SearchOption.AllDirectories).ToList();
for(int i = 0;i != FilesInDirectory.Count;++i)
{
try
{
StreamReader reader = new StreamReader(FilesInDirectory[i]);
string TextInFile = reader.ReadToEnd();
reader.Close();
for(int q = 0;q != IList.Count;++q)
{
if(TextInFile.Contains(IList[q]))
{
// Stichwort gefunden, ihr Code

// Stichwort gefunden, ihr Code 
}
}
}
catch
{}
}
}
Abgelegt unter Suche, Scan, Streamreader.

5 Kommentare zum Snippet

Koopakiller schrieb am 06.12.2013:
1. Lasse die Stichworte als Array übergeben, denn so kann man auch nach Kommas suchen. Das params-Schlüsselwort ist hierfür ebenfalls praktisch.
2. Um de gesamten Text einer Datei einzulesen solltest du File.ReadAllText() oder einen using-Block für den Stream benutzen.
So wird der Stream auch im Fehlerfall wieder geschlossen.
3. Ein Abfangen von Exceptions ohne deren weitere Verarbeitung erschwert oftmals nur die Arbeit, wenn es darum geht einen Fehler zu finden. Löse darum eine neue Exception aus und übergebe die abgefangene als innere Ausnahme.
sita schrieb am 07.12.2013:
Und noch als Idee: Vielleicht als weitere Parameter ein IncludeSubFolders und ein Mask. Als Rückgabewert eine Liste mit Treffern, statt innerhalb der Methode weiter zu arbeiten wäre auch praktischer.
Coder schrieb am 09.12.2013:
Vielleicht könnt ihr mir ja helfen wie rufe ich eine Windows Form in einem neuen Threed auf bei mir gibt das immer eine Fehler Nachricht.
Koopakiller schrieb am 09.12.2013:
@Coder
wenn es nur darum geht eine 2. Form parallel zur ersten anzuzeigen, dann kannst du einfach .Show() statt .ShowDialog() aufrufen. Dadurch kannst du beide Forms weiter benutzen.
Aber auch das direkte aufrufen aus einem 2. Thread heraus sollte funktionieren:
Thread t = new Thread(() =>{
Form1 frm = new Form1();
frm.ShowDialog();
});
t.Start();
Coder schrieb am 24.01.2014:
Vielen Dank
 

Logge dich ein, um hier zu kommentieren!