首页 > 解决方案 > 使用 Visual Studio 2012 对通过 Directory.GetFiles 获得的文件进行排序

问题描述

我意识到我使用的是旧版本的 Visual Studio,但在获取一些使用 Directory.GetFiles 返回的文件时遇到问题。我写了一个程序,它是一个圣经诗歌游戏。我正在尝试向程序添加另一种“模式”,允许用户将该程序用作打开的圣经并阅读所选书中的经文。该程序的游戏部分运行良好,我没有任何问题。我在主表单中添加了一个组合框,当用户单击按钮时,该组合框会加载所选书中的经文。这些章节在相应书籍的目录(文件夹)中按顺序排列[即:John1.txt、John2.txt 等]。使用下面的代码,将返回章节:[John1.txt, John10.txt, John11.txt...]

 Private Sub LoadBook()
    Dim CorrectVersePath As String = Nothing
    
    Select Case My.Settings.Version

        Case "KJV"
            If My.Settings.TestamentName = "NewTestament" Then
                Label2.Text = "New Testament"
                CorrectVersePath = CorrectVersePath & KingJamesPath & "NewTestament\" & My.Settings.BookName & "\"
            ElseIf My.Settings.TestamentName = "OldTestament" Then
                Label2.Text = "Old Testament"
                CorrectVersePath = CorrectVersePath & KingJamesPath & "OldTestament\" & My.Settings.BookName & "\"
            End If

        Case "NIV"
            If My.Settings.TestamentName = "NewTestament" Then
                Label2.Text = "New Testament"
                CorrectVersePath = CorrectVersePath & NewInternationalPath & "NewTestament\" & My.Settings.BookName & "\"
            ElseIf My.Settings.TestamentName = "OldTestament" Then
                Label2.Text = "Old Testament"
                CorrectVersePath = CorrectVersePath & NewInternationalPath & "OldTestament\" & My.Settings.BookName.ToString & "\"
            End If

    End Select

    Dim Chapters = Directory.GetFiles(CorrectVersePath)
    Dim chaptname As Array = Directory.GetFiles(CorrectVersePath)

    For Each cname As String In chaptname
        x += 1
        ComboBox1.Items.Add(IO.Path.GetFileNameWithoutExtension(cname))
    Next
            
End Sub

有没有办法让这些章节按照它们在文件夹中的顺序返回?我尝试将 Array.Sort 函数与默认配置一起使用,但它不起作用。是的,我读到了这个:

https://docs.microsoft.com/en-us/dotnet/api/system.array.sort?view=net-5.0#System_Array_Sort_System_Array_System_Collections_IComparer _

标签: vb.net

解决方案


推荐阅读