Sorting 对文件夹中的文件进行排序

Sorting 对文件夹中的文件进行排序,sorting,vbscript,Sorting,Vbscript,我正在尝试对文件夹的文件进行排序,并按特定顺序(例如按名称或修改日期)对其执行操作 我尝试过以下方法: Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(source_folder.Path) Set colFiles = objFolder.Files Set outputLines = CreateObject("System.Collecti

我正在尝试对文件夹的文件进行排序,并按特定顺序(例如按名称或修改日期)对其执行操作 我尝试过以下方法:

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(source_folder.Path)
Set colFiles = objFolder.Files
Set outputLines = CreateObject("System.Collections.ArrayList")
For Each objFile in colFiles
      outputLines.Add(objFile.Name)
next
outputLines.Sort()
For Each outputLine in outputLines
  set objFile = colFiles.item (outputLine&"")
  *rest of the code*
问题是,如果文件的文件名包含ASCII值小于“.”的字符,例如,“test!.exe”将位于“test.exe”之前,这对我不好

我有一个想法,让一个类包含“扩展名”和“没有扩展名的文件名”作为字段,并按“没有扩展名的文件名”进行排序,但我发现我无法将自定义对象作为元素对Arraylist进行排序

关于同一主题,我有两个问题:

1) 是否有方法对文件夹中的文件进行排序,并按照处理此类情况的特定顺序对其执行操作(如test!.exe和test.exe)


2) 文件夹中的文件是否有默认顺序?我对它进行了一些测试,似乎顺序是根据文件名确定的,但我在Microsoft的一份官方文档中看到,这些文件没有顺序,所以我有点困惑。

这里有一个想法。您可以在文件的基本名称和扩展名之间替换控制字符(或其他一些无效的文件名字符)。例如,将
vbTab
作为分隔符放入

For Each objFile in colFiles
    strBaseName  = objFSO.GetBaseName(objFile.Path)
    strExtension = objFSO.GetExtensionName(objFile.Path)
    outputLines.Add strBaseName & vbTab & strExtension
Next
排序之后,您只需记住在对文件执行任何操作之前将其交换回

For Each outputLine in outputLines
    strFile = Replace(outputLine, vbTab, ".")
    ...
Next

感谢您的想法,但是文件名是否可能包含ASCII值为9(与vbTAB相同)或更小的字符?文件名不能包含tab字符。