Dateinamen auslesen
-
Hallo,
ich möchte ein Programm schreiben, dass alle Dateinamen eines bestimmten Orderns einliest und in einem String^-Array speichert.Ich habe leider keine Ahnung wie das in Visual C++ gehen soll.
Kann mir bitte Jemand helfen?
-
Wenn Du das .Net Framework verwendest kannst Du Dir mal folgendes ansehen:
array<System::IO::FileInfo^> ^ files; System::IO::DirectoryInfo dirinfo(txt_DirName->Text); files = dirinfo.GetFiles(); for each(FileInfo ^ f in files) { }
-
Knuddlbaer schrieb:
Wenn Du das .Net Framework verwendest kannst Du Dir mal folgendes ansehen:
array<System::IO::FileInfo^> ^ files; System::IO::DirectoryInfo dirinfo(txt_DirName->Text); files = dirinfo.GetFiles(); FileInfo^ f; for each(f in files) { }
Danke, dass funktioniert perfekt!
Noch ne Frage: Ich habe doch all die Dateiname jetzt in dem Array. Kann ich auch gleich die Dateien einlesen und jede Zeile einzeln speichern?
Am besten in einem String-Array.Wie geht das mit .NET?
-
System::Collections::Specialized::StringCollection ^sc = gcnew System::Collections::Specialized::StringCollection(); for each(f in files) { String ^fn = System::IO::Path::Combine(dirinfo.FullName, f); System::IO::StreamReader sr(fn); String ^s = sr.ReadLine(); while(s != nullptr) { sc->Add(s); s = sr.ReadLine(); } }
-
In einem Webcast hiess es mal, dass die Collections ziemlich langsam sind im Vergleich zu Arrays. Trotzdem verwenden?
-
Macan schrieb:
In einem Webcast hiess es mal, dass die Collections ziemlich langsam sind im Vergleich zu Arrays. Trotzdem verwenden?
Sagen wir mal so: Dir bleibt nichts andere übrig, wenn Du die Anzahl der Elemente nicht im Vorraus kennst!
array<String^> ^stringArray = gcnew array<String^>(10); stringArray[0] = "Hallo"; // es gibt kein Add!
Aber wenn Du die Anzahl nicht kennst, kannst Du nur eine Collection (ArrayList) verwenden...
-
Ich danke euch. Die Antworten haben mir sehr weitergeholfen. Es funktioniert super.
-
Macan schrieb:
In einem Webcast hiess es mal, dass die Collections ziemlich langsam sind im Vergleich zu Arrays. Trotzdem verwenden?
Es gibt in der Klasse File eine Methode ReadAllLines:
static array<String> ReadAllLines(String^ pfad);
Die liest die gesamte Textdatei zeilenweise ein und gibt sie als String-Array zurück. Suchst du sowas?
Nid.