Mit welcher Funktion könnte man Dateinamen, ohne Pfad und Datetyp, aus einem Folder herauslesen?
mfg
TehBasic
schau dir die system.io klasse an, diese hat u.a. auch eine directory klasse
dateinamen in einem folder? denglish, dateinamen in einem ordner bitte ^^
Hab ich schon gemacht, funzt nicht.
Mit der Directoy kriege ich nur das GetFiles und es zeigt mir den ganzen Pfad und Dateitypen an...
GetFileInfo().Name
mal austesten
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:
Dim Files() AsString= IO.Directory.GetFiles(Path) 'Schreibt alle Dateien inkl. Pfad in ein Array
Dim FileNameParts() AsString'Für die einzelnen Pfadstücke (beim splitten)
Dim FileName(Files.Length -1) AsString'Der eigentliche Dateiname
For i AsInteger=0To Files.Length -1'So oft wiederholen wie es Dateien gibt -> logisch
FileNameParts = Files(i).Split(CChar("\")) 'Den Pfad nach jedem "\" unterteilen und in FileNameParts speichern
FileName(i) = FileNameParts(FileNameParts.Length -1) 'Das letzte Pfadstück aus dem Array = Dateiname
Next
For i AsInteger=0To FileName.Length -1
lbFileNames.Items.Add(FileName(i)) 'Beispielsweise in eine Listbox hinzufügen per For Schleife
Next
EndSub
PrivateSub btnFill_Click(sender As System.Object, e As System.EventArgs) Handles btnFill.Click
GetFileNames("C:\") 'Mithilfe eines Click-Events die Sub aufrufen und den Ordner "C:\" durchsuchen lassen
EndSub
EndClass
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
VB.NET-Quellcode
ForEach Filename In FileIO.FileSystem.GetFileInfo("C:\Windows\Fonts\").Name
cbxFont.Items.Add(Filename)
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
Dim folder AsString="C:\Temp"
ForEach file In IO.Directory.GetFiles(folder, "*.*", IO.SearchOption.TopDirectoryOnly)
ListBox1.Items.Add(IO.Path.GetFileName(file))
'ListBox1.Items.Add(IO.Path.GetFileNameWithoutExtension(file)) ' Ohne Dateiendung
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?
Dann sollst Du nicht die Dateien einlesen, sondern die Infos aus der Klasse FontFamilies herausholen