C# Ordnernamen in Array?
Hi,
habe ein Array mit den Ordnerpfaden. Will aber die Namen von den Ordnern und nicht die Pfade... kann mit wer helfen?
Der Momentane Code
Wie man sieht kommt das ganze in eine Combobox
Da steht aber das drin
Will nur den Ordnernamen
2 Antworten
Die Arbeit solltest du der Path-Klasse überlassen. Die Select-Methode (aus dem System.Linq-Namespace) durchläuft jeden Pfad und holt sich den String vor dem letzten (Back-)Slash. Das Ergebnis wird in ein iterierbares Objekt geschrieben, welches deiner ItemSource zugewiesen werden kann.
profileausw.ItemSource = Directory.GetDirectories("...").Select(Path.GetFileName);
Gehe die Ordnernamen, welche ja Strings sind, durch und kürze Sie:
ordner = ordner.Split('\').Last();
string[] profile = Directory.GetDirectories("C:\\Users\\"+username+"\\AppData\\Roaming\\.minecraft\\#modsswitcher");
foreach (int i in profile)
{
profile = profile[i].Split('\').Last();
}
Habe jetzt das, so kennt er auch Split. Aber jetzt ist for each und das Apostrov vor dem \ rot gekennzeichnet
Naja, lies dir das nochmal durch. Du sagst ja hier: for each (für jedes) integer (int) element, in diesen string array, soll er da was machen. Das kann ja garnicht funktionieren, weil in einem string Array sind keine integer sondern strings.
Versuchs mal so:
string[] profile = ...
string[] ordner = new string[profile.length];
for (int i = 0; i < profile.length; i++){
ordner[i] = profile[i].Split('\').Last();
}
Wenn ich spontan keinen Bug eingebaut hab, liegen danach die Ordnernamen im string array "ordner" und die ganzen pfade weiterhin in "profile"
Ok habe gerade foreach entdeckt habe jetzt das:
string[] profile = Directory.GetDirectories("C:\\Users\\"+username+"\\AppData\\Roaming\\.minecraft\\#modsswitcher");
foreach (int i in profile)
{
profile = profile.Split()
}
er kennt Split aber nicht