vb.net从文件夹中读取所有文件的顺序
我对从文件夹中读取所有文件的顺序有问题 我的代码以错误的顺序读取文件 当我有文件时: 1.txt 2.txt 10.txt 20.txt 100.txt 我的代码读取文件查看文件的第一个字母: 1.txt 10.txt 100.txt 2.txt 20.txt 如何以数字顺序读取文件? 1.txt 2.txt 10.txt 20.txt 100.txt 我使用以下代码:vb.net从文件夹中读取所有文件的顺序,vb.net,file,directory,Vb.net,File,Directory,我对从文件夹中读取所有文件的顺序有问题 我的代码以错误的顺序读取文件 当我有文件时: 1.txt 2.txt 10.txt 20.txt 100.txt 我的代码读取文件查看文件的第一个字母: 1.txt 10.txt 100.txt 2.txt 20.txt 如何以数字顺序读取文件? 1.txt 2.txt 10.txt 20.txt 100.txt 我使用以下代码: Dim di As New DirectoryInfo(Path), fiArr As FileInfo()
Dim di As New DirectoryInfo(Path), fiArr As FileInfo() = di.GetFiles()
Dim strplik As FileInfo
For Each strplik In fiArr
'read strplik from file
next strplik
如果文件名为字符串,则可以按以下方式对文件进行排序
Dim files as String() = {"1.txt", "10.txt", "15.txt", "2.txt", "20.txt"}
Dim sortedResults = from file in files _
order by file.PadLeft(10, "0") _
select file
For Each result in sortedResults
Console.WriteLine( result )
next
它将要做的是,确保所有文件的总长度为10个字符,通过在文本前面添加0,最终,您将得到如下结果
1.txt => 000001.txt
10.txt => 000010.txt
这样,它将按字母顺序正确排序,另一个选项是转换为int,但我不认为有必要在这里使用它
在此中可以找到一个完整的示例,假设文件名不带扩展名,只包含一个数值,则可以执行以下操作:
Dim files = New DirectoryInfo(path).GetFiles.OrderBy(Function(x) Val(System.IO.Path.GetFileNameWithoutExtension(x.Name)))
For Each file In files
Debug.Print(file.FullName)
Next
这些不是数字,它们是测试的,因此
9.txt
将“高于”1000.txt。您需要使用自然排序对结果进行排序。请阅读并回答以下问题:这里有一个几乎相同的问题,那么有没有不排序文件名的方法?@JakubM:no。