根据“上次修改日期”循环浏览文件夹中的所有文件

时间:2013-04-29 21:29:09

标签: loops vbscript last-modified filesystemobject

我需要按照“上次修改日期”的降序循环浏览给定文件夹中的文件。

在循环的第一次迭代中,我需要能够打开最近修改过的文件进行读取并关闭它。在第二次迭代中,我需要能够打开第二个最近更新的文件进行阅读并关闭它等。

  1. 是否有内置方法允许FileSystemObject对文件进行排序,还是我们必须编写自定义排序例程?

  2. 如果我们必须使用自定义排序例程,是否可以在没有多个函数的情况下编写它?即主函数中的所有代码。

  3. 速度是一个值得关注的问题,因为需要对很多文件进行排序。因此,任何自定义程序都应该是有效的。

1 个答案:

答案 0 :(得分:10)

您可以将文件名和日期读入已断开连接的recordset并按日期排序:

Set fso = CreateObject("Scripting.FileSystemObject")

Set list = CreateObject("ADOR.Recordset")
list.Fields.Append "name", 200, 255
list.Fields.Append "date", 7
list.Open

For Each f In fso.GetFolder("C:\some\where").Files
  list.AddNew
  list("name").Value = f.Path
  list("date").Value = f.DateLastModified
  list.Update
Next

list.MoveFirst
Do Until list.EOF
  WScript.Echo list("date").Value & vbTab & list("name").Value
  list.MoveNext
Loop

list.Sort = "date DESC"

list.MoveFirst
Do Until list.EOF
  WScript.Echo list("date").Value & vbTab & list("name").Value
  list.MoveNext
Loop

list.Close