.net - vb.net 无法对文件名进行排序
问题描述
这是我的代码
Dim orderedFiles = New System.IO.DirectoryInfo(dir).GetFiles("file_*.jpeg").OrderBy(Function(x) x.Name)
For Each f As System.IO.FileInfo In orderedFiles
msgbox(f.name)
Next
展示
file_1.jpeg
file_10.jpeg
file_11.jpeg
file_12.jpeg
file_13.jpeg
file_14.jpeg
file_2.jpeg
file_3.jpeg
file_4.jpeg
file_5.jpeg
file_6.jpeg
file_7.jpeg
file_8.jpeg
file_9.jpeg
我希望他们按 1 - 2 - 3 排序...... 14
我该怎么做?
解决方案
你可以做你想做的事,而无需使用StrCmpLogicalW
API 更改文件名,例如
Imports System.IO
Imports System.Runtime.InteropServices
Module Module1
<DllImport("shlwapi.dll", CharSet:=CharSet.Unicode)>
Private Function StrCmpLogicalW(x As String, y As String) As Integer
End Function
Sub Main()
Dim files = New DirectoryInfo("D:\johnm\Documents\Test").GetFiles()
Array.Sort(files,
Function(file1, file2) StrCmpLogicalW(file1.Name, file2.Name))
For Each file In files
Console.WriteLine(file.Name)
Next
Console.ReadLine()
End Sub
End Module
推荐阅读
- java - 在 Kotlin 中打印时不遵循换行符
- java - 获取不属于表的模型类字段
- javascript - Require 找不到文件夹,除非它是硬编码的
- mysql - 数据库中的 XAMMP 中的我的 SQL 错误。无法删除表中的用户
- java - 使用jackson xml映射器在spring boot中将xhtml字符串化
- database - 如何将只有管理员才能看到的页面添加到我的网站?
- performance - 优化 Page speed Insights Google 桌面版和移动版
- python - 如何使用 discord.py 机器人断开人们与语音频道的连接?
- sql - 在 Kylin 中将子查询结果转换为数组
- json - 使用 Optional 管理我的 Hibernate POJO NullPointerException