Laden...

Mehrere Text-Dateien von bestimmten Pfad einlesen (für GUI-Anwendung)

Erstellt von Michael1995 vor 3 Jahren Letzter Beitrag vor 3 Jahren 977 Views
M
Michael1995 Themenstarter:in
22 Beiträge seit 2020
vor 3 Jahren
Mehrere Text-Dateien von bestimmten Pfad einlesen (für GUI-Anwendung)

Servus zusammen,

folgende Situation:

ich lese aus einer Datei mit System.IO.File.ReadAllLines(@"C:\Users[...]csv") problemlos eine CSV-Datei ein und speichere diese zeilen in einem Array ab:
string[] zeilen = System.IO.File.ReadAllLines(@"C:\Users[...]csv");
Anschließend erstelle ich ein ListViewItem-Array und lass dann mittels ner Schleife alles durchlaufen und bringe dies schön in mein ListView rein.

Jetzt aber folgender Fall: Wenn ich jetzt andere Dateien in dem Pfad auch noch einlesen will(nur Text von csv-Dateien), wie funktionert dies? Bin schon ewig auf der Suche..., am besten wäre, wenn ich diese Zeilen dann wieder schön in das string[] anschließend reinspeichern könnte. Mir geht´s nur darum, dass sich das Programm noch alle Dateien in dem Ordner raussucht, die mit einem bestimmten Dateinamen anfangen (das ist dann Schritt 2), und diese dann zeilenweise einliest.
Habt ihr Vorschläge?
edit.: bin im .Net-Framework 4.7.2 unterwegs
Vielen Dank. 😁

2.078 Beiträge seit 2012
vor 3 Jahren

Du willst die anderen Dateien in das selbe Array einlesen?
Das geht nicht.

Nimm eine Liste (List<T>) oder eine der vielen anderen Möglichkeiten (z.B. ObservableCollection<T>) dafür. Die führen intern zwar auch nur ein Array, aber die kümmern sich darum, dass dieses Array dynamisch vergrößert und effizient genutzt wird.

By the way:
Wenn Du CSV lesen willst, nimm doch eines der vorhandenen Frameworks? Die können das alle ziemlich gut und wurden millionenfach getestet.
Ich hab z.B. gute Erfahrungen mit "CsvHelper" gemacht.

16.807 Beiträge seit 2008
vor 3 Jahren

Naja, was Du machhen musst ist ja prinzipiell nur eine Liste füllen.
Ob diese Liste nun durch dich oder durch eine Methode gefüllt wird ist egal - aber es ist halt so, dass ein Framework niemals Dir alles schenken wird.
Manche Dinge muss man selbst entwickeln - deswegen nennt sich der Job ja auch entwickler.

List<string> allFilesLines..

string[] fileLines = Lines Einlesen
// Eingelesene Zeilen in die gesamte Liste einfügen
allFilesLines.AddRange(fileLines) ..
3.825 Beiträge seit 2006
vor 3 Jahren

Alle Dateien einlesen :

string[] files = Directory.GetFiles(path, "*.csv", ...);

Statt "c:\users..\documents" kann man Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) benutzen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
Michael1995 Themenstarter:in
22 Beiträge seit 2020
vor 3 Jahren

Servus Bernd,

genau das habe ich in der Früh vorhin auch schon verwendet und damit mein Problem gelöst, das Dicrectory.GetFiles.
Anschließend mit einer Schleife von jeder Datei die Zeilen ausgelesen. Macht, was es soll 😁 👍

Danke trotzdem 😉

Hinweis von Abt vor 3 Jahren

Bitte keine Full Quotes
[Hinweis] Wie poste ich richtig?