按日期对 FileSystemObject 进行排序

Mik*_*ole 3 asp-classic

我想使用 ASP Classic FSO 按日期对文件进行排序。

我是否需要循环遍历所有文件,将日期放入数组中,然后按日期顺序列出数组,或者是否有更简单的方法单独使用 FSO 来执行此操作?

Ste*_*uan 6

我创建了一个 VBScript 函数SortFiles

  1. FileSystemObjectFiles集合复制到 VBScript 数组中
  2. 通过降序对 VBScript 数组进行冒泡排序DateLastModified(注意:这是一种缓慢的排序,您可以使用替代算法改进它)

这是我的 VBScript 函数SortFiles

Function SortFiles(files)
  ReDim sorted(files.Count - 1)
  Dim file, i, j
  i = 0
  For Each file in files
    Set sorted(i) = file
    i = i + 1
  Next
  For i = 0 to files.Count - 2
    For j = i + 1 to files.Count - 1
      If sorted(i).DateLastModified < sorted(j).DateLastModified Then
        Dim tmp
        Set tmp = sorted(i)
        Set sorted(i) = sorted(j)
        Set sorted(j) = tmp
     End If
    Next
  Next
  SortFiles = sorted
End Function
Run Code Online (Sandbox Code Playgroud)

该函数的使用示例SortFiles

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim files
Set files = fso.GetFolder(SOME_PATH).Files
Dim file
For Each file in SortFiles(files)
  Rem Do something with file ...
Next
Run Code Online (Sandbox Code Playgroud)