Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net从文件夹中读取所有文件的顺序_Vb.net_File_Directory - Fatal编程技术网

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

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()

我对从文件夹中读取所有文件的顺序有问题

我的代码以错误的顺序读取文件 当我有文件时: 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
它将要做的是,确保所有文件的总长度为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。