C# Entfernen Sie die Dateiendung aus string-Liste

Was mein Programm tut, ist im Grunde Listen von Dateinamen (einschließlich seiner Erweiterung) aus einem Verzeichnis in einer listbox. Es hat dann eine Sortier Funktion die sortiert die Liste strings in alphabetischer Reihenfolge.

Schließlich hat es eine binäre Suche-Funktion, die ermöglicht dem Benutzer bei der Eingabe eine beliebige Zeichenfolge, die das Programm dann vergleichen und zeigt die abgestimmten Ergebnisse in eine listbox.

Nun, alle diese Funktionen arbeiten perfekt, aber ich kann nicht scheinen, um entfernen Sie die Erweiterung aus einem Dateinamen nach einer Suche.

Beispielsweise in der scan-und Sortier-Teil listet die Dateinamen: Dateiname.mp3

Nun, was ich will, es zu tun, wenn die suchen-Schaltfläche geklickt wird, ist zu entfernen Sie die Datei-Erweiterung und zeigt nur den Dateinamen an.

    private void buttonSearch_Click(object sender, RoutedEventArgs e)
    {

        listBox1.Items.Clear();

        string searchString = textBoxSearchPath.Text;


        int index = BinarySearch(list1, 0, list1.Count, searchString);

        for (int n = index; n < list1.Count; n++)
        {
            //Removes file extension from last decimal point ''not working''
            int i = list1[n].LastIndexOf(".");
            if (i > 0)
                list1[n].Substring(0, i);

            //Adds items to list
            if (list1[n].IndexOf(searchString, StringComparison.OrdinalIgnoreCase) != 0) break; 
            listBox1.Items.Add(list1[n]);
        }
        MessageBox.Show("Done");
    }
  • Pfad.GetFileNameWithoutExtension()
  • Ich bin mir nicht sicher, wie Sie zu implementieren, dass in meinem code (siehe oben) habe ich bereits bearbeitet, die Datei-Namen in der string-Liste
  • Verwenden Sie die statischen Operationen im System.IO.Path-Klasse zum Umgang mit Erweiterungen. GetExtension() oder GetFileNameWithoutExtension() in den Sinn kommt, Auch sollten Sie immer verwenden Sie { } bei if-Blöcken, auch wenn es nur eine Zeile ... Ihr ein if-block ist anders als der zweite ......
  • Was verstehst du nicht genau? Pfad.GetFileNameWithoutExtension() ist Recht einfach.
  • Sie wusste nicht, weisen Sie die sub-string Wert Liste1[n] = Liste1[n].Substring(0, i);
  • Ich kann nicht glauben, dass ich übersehen! Es hat geklappt! 😀 vielen Dank 🙂
  • Willkommen 🙂

InformationsquelleAutor ffxdean | 2013-04-08
Schreibe einen Kommentar