【问题标题】:VB.NET Initial Sort OrderVB.NET 初始排序顺序
【发布时间】:2019-12-16 18:46:10
【问题描述】:

长话短说,以 Mp3Tag 为例,它会从头到尾添加文件夹 1 到 5。当我在我的程序中添加相同的文件夹时,它会将文件夹从 5(第一个)添加到 1(最后一个)。有什么办法可以解决这个问题吗?

这是我一直在使用的代码。

    If FolderBrowserDialogMain.ShowDialog = DialogResult.OK Then
        For Each mp3 In Directory.GetFiles(FolderBrowserDialogMain.SelectedPath, "*.mp3", IO.SearchOption.AllDirectories)
            Dim fiFileInfo As New FileInfo(mp3)
            ListViewMain.Items.Add(fiFileInfo.Name)
        Next
    End If

【问题讨论】:

  • 查看Linq。只需在您的GetFiles(...) 上添加.OrderBy(...)
  • 这能回答你的问题吗? Sort a List of Object in VB.NET
  • 您可能希望按文件名(而不是完整路径)排序。在这种情况下,您可以使用类似Dim dirInfo As New DirectoryInfo(FolderBrowserDialogMain.SelectedPath) 然后For Each fInfo As FileInfo In dirInfo.GetFiles(...).OrderBy(Function(x) x.Name)
  • 谢谢罗比尔。我会检查 linq 看看会发生什么。
  • 艾哈迈德感谢您的意见。我一定会调查所有的答案。谢谢大家。

标签: vb.net


【解决方案1】:

也许添加 .Reverse 来反转文件?

If FolderBrowserDialogMain.ShowDialog = DialogResult.OK Then
    For Each mp3 In Directory.GetFiles(FolderBrowserDialogMain.SelectedPath, "*.mp3", IO.SearchOption.AllDirectories).Reverse()
        Dim fiFileInfo As New FileInfo(mp3)
        ListViewMain.Items.Add(fiFileInfo.Name)
    Next
End If

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 2010-09-18
    • 2018-04-11
    • 1970-01-01
    • 2012-09-20
    • 2013-02-18
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多