繁体   English   中英

vb.net从文件夹中读取所有文件的顺序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM