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字符。