Я предоставляю это в качестве образца для целей обучения, но его не следует использовать как есть. Получение каждого файла из всего C: \ не должно быть сделано следующим образом. Помимо проблем с производительностью, существуют ограничения безопасности Windows, которые не позволяют вам сделать это.
Заполняемый здесь FileList получает только TopDirectoryOnly. Если вы измените этот вход на «AllDirectories», он получит все подкаталоги, но он потерпит неудачу, как я говорил ранее.
Dim path As String = "C:\"
Dim dir As New System.IO.DirectoryInfo(path)
Dim fileList = dir.GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)
Dim fileSort = (From file In fileList _
Order By file.Name _
Select file.Name, file.Length).ToList
For Each file In fileSort
With file
lstData.Items.Add(String.Format("{0} {1}", .Name, .Length.ToString("N0")))
End With
Next file
Просто измените Order By в запросе LINQ, чтобы изменить порядок сортировки. Есть много других способов сделать сортировку, но LINQ сделает это за вас с очень небольшим количеством кода.