我在使用Visual Basic以有序方式处理文件时遇到一些问题。基本上,我正在读取名为1.jpg,2.jpg,.... 10.jpg,11.jpg的文件夹中的所有文件。
创建逻辑时,我需要按文件名(1、2、3 ...,8、9、10、11)升序处理这些文件。实际上,使用我的代码,我猜这些文件是以字符串方式工作的(1,10,2,20,3,4,5)。
在这种情况下有人可以帮助我,因为我无法正常工作吗? 尝试了两种不同的代码,但无法解决。
我尝试过:
Dim MyFiles() As String = IO.Directory.GetFiles(folder)
For Each file In myfiles
并尝试使用:
Dim myfiles As FileInfo()
myfiles = New DirectoryInfo(folder).GetFiles()
For Each file In myfiles
有人可以帮我吗?
答案 0 :(得分:1)
如果文件名只是数字,那很容易:
Dim MyFiles() As String = IO.Directory.GetFiles(folder)
For Each file In myfiles.OrderBy(Function(filePath) CInt(IO.Path.GetFileNameWithoutExtension(filePath)))
如果文件名包含文本和数字,则稍微复杂一些,但是可以使用Windows API函数以文件资源管理器的方式对文件名进行排序,因为文件资源管理器使用该功能。如果需要,请发表评论,我会发表细节。