Vb.net – Dateinamen auslesen und in ein Array speichern
Wenn die eigne Anwendung zum Beispiel mit Dateien arbeitet, ist es eventuell notwendig die Dateien in einen bestimmten Verzeichnis zukennen. Sind die Dateien bekannt, kann man diese direkt im Quellcode angeben. Verändert sich jedoch der Verzeichnisinhalt, ist es notwendig dieses Verzeichnis aus zulesen um die darin befindlichen Dateien zu ermitteln.
Dies lässt sich einfach über die Directory.GetFiles Funktion realisieren. Directory.GetFiles gibt leider nur den kompletten Pfad in einen Array zurück, die Rückgabe muss also mit Split getrennt werden um an den Dateinamen zugelangen. Split trennt anhand eines Zeichen, den String in ein Array auf. Wendet man Split auf eine Pfadangabe an, erhält man eine Rückgabearray in den sich im letzten Arrayfeld der Dateiname befindet. Um nun schnell den Inhalt eines Ordners in Erfahrung zubringen, bündelt man diese Methoden in eine Funktion.
public function func_read_dir(sub_path as string)
öffentliche Funktion erstellen:
Dim ary_files() As String
Dim ary_files_return() As String
Dim ary_split_filename() as String
3 Arrays definieren:
ary_files = Directory.GetFiles(sub_path)
Nun werden die Dateien samt Pfad in ein Array gespeichert
For x= 0 To ary_files.Length -1
ary_split_filename = split(ary_files(x), "\")
ary_files_return(x) = ary_split_filename(ary_split_filename.Length -1)
Next
In der Schleife arbeitet man die Anzahl der Dateien im Verzeichnis ab, mit Split trennet man anhand des Backslashs, anschliessend wird über array.length das letzte feld im Array ermittelt
return ary_files
End function
Array zurückgeben und Funktion schliessen
Um die Directory.GetFiles Methode nutzen zu können, muss der IO Namespace angeben werden: Imports System.IO.
Aufgerufen wird die Funktion wie folgt:
ary_filenames = func_read_dir(path_to_dir)
Die gesamte Funktion:
public function func_read_dir(sub_path as string)
Dim ary_files() As String
Dim ary_files_return() As String
Dim ary_split_filename() as String
ary_files = Directory.GetFiles(sub_path)
For x= 0 To ary_files.Length -1
ary_split_filename = split(ary_files(x), "\")
ary_files_return(x) = ary_split_filename(ary_split_filename.Length -1)
Next
return ary_files
End function