Auslesen der Dateinamen in einem Folder

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von TehBasic.

    Path.GetFileName/Path.GetFileNameWithoutExtension
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Angenommen der Ordner hat keine Unterordner und enthält nur Dateien:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On 'Wichtig, verhindert u.A. ungewollte Fehler
    2. Public Class Form1
    3. Sub GetFileNames(ByVal Path As String)
    4. Dim Files() As String = IO.Directory.GetFiles(Path) 'Schreibt alle Dateien inkl. Pfad in ein Array
    5. Dim FileNameParts() As String 'Für die einzelnen Pfadstücke (beim splitten)
    6. Dim FileName(Files.Length - 1) As String 'Der eigentliche Dateiname
    7. For i As Integer = 0 To Files.Length - 1 'So oft wiederholen wie es Dateien gibt -> logisch
    8. FileNameParts = Files(i).Split(CChar("\")) 'Den Pfad nach jedem "\" unterteilen und in FileNameParts speichern
    9. FileName(i) = FileNameParts(FileNameParts.Length - 1) 'Das letzte Pfadstück aus dem Array = Dateiname
    10. Next
    11. For i As Integer = 0 To FileName.Length - 1
    12. lbFileNames.Items.Add(FileName(i)) 'Beispielsweise in eine Listbox hinzufügen per For Schleife
    13. Next
    14. End Sub
    15. Private Sub btnFill_Click(sender As System.Object, e As System.EventArgs) Handles btnFill.Click
    16. GetFileNames("C:\") 'Mithilfe eines Click-Events die Sub aufrufen und den Ordner "C:\" durchsuchen lassen
    17. End Sub
    18. End Class


    Funktioniert bei mir einwandfrei, hoffe ich konnte helfen und hab hier keinen Fehler eingebaut

    EDIT: Die Methode von Lukas ist natürlich um einiges kürzer :D

    VB.NET-Quellcode

    1. For Each Filename In FileIO.FileSystem.GetFileInfo("C:\Windows\Fonts\").Name
    2. cbxFont.Items.Add(Filename)
    3. Next



    Ich möchte die Namen der Fonts aus dem Ordner einlesen, jedoch mache ich wahrscheinlich bei diesem Code etwas falsch. Er gibt mir jeden Buchstaben von "FONTS" einzeln in die Combobox anstatt der Fonts aus dem Ordner. :/
    IO.Directory.GetFiles + IO.Path.GetFileName bzw. GetFileNameWithoutExtension, wenn man keine Dateiendung haben will
    Beispiel:

    VB.NET-Quellcode

    1. Dim folder As String = "C:\Temp"
    2. For Each file In IO.Directory.GetFiles(folder, "*.*", IO.SearchOption.TopDirectoryOnly)
    3. ListBox1.Items.Add(IO.Path.GetFileName(file))
    4. 'ListBox1.Items.Add(IO.Path.GetFileNameWithoutExtension(file)) ' Ohne Dateiendung
    5. Next
    Danke! :)

    Was ich eigentlich einlesen möchte, sind die Schriftartennamen aus dem "Fonts" Ordner. Sind eigentlich nur kürzel. Könnte man das irgendwie hinbekommen das es in etwa so aussieht wie in Word? Das die Namen der Schriftarten vollständig ausgeschrieben werden anstatt nur verkürzt?