[英]vb.net Order of reading all files from folder
我从文件夹中读取所有文件的顺序有问题。
当我有文件时,我的代码读取文件的顺序错误: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() = 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
它将要做的是,通过在文本前面添加0,确保所有文件的总长度为10个字符,最后,您将得到类似
1.txt => 000001.txt
10.txt => 000010.txt
这样,它将按照正确的方式进行排序,另一种选择是将其转换为int,但我认为这里没有必要
可以在此dotnetfiddle中找到完整的示例
假设没有扩展名的文件名仅包含一个数字值,则可以执行以下操作:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.