Вы можете делать что хотите, не меняя имен файлов, используя 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