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

Posted

技术标签:

【中文标题】根据“上次修改日期”循环浏览文件夹中的所有文件【英文标题】:Loop through ALL files in a folder based on 'Last Modified Date' 【发布时间】:2013-04-23 16:53:58 【问题描述】:

我需要按“上次修改日期”的降序遍历给定文件夹中的文件。

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

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

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

    速度是一个问题,因为需要对大量文件进行排序。因此,任何自定义程序都应该是高效的。

【问题讨论】:

【参考方案1】:

您可以将文件名和日期读入断开连接的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

【讨论】:

非常感谢。我会试试这个,让你知道! 此脚本两次回显文件列表。一次以任意顺序,然后一次按日期排序。只是提到这一点,以防有人想知道为什么首先回显的列表没有排序。

以上是关于根据“上次修改日期”循环浏览文件夹中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

DataLake 文件 - 上次修改日期时间

是否可以从资产文件中获取上次修改日期?

文件上次修改

如何在 MS Azure 中为我的 blob 存储中的 blob 提取上次修改日期

国家和年份 - 上次修改日期

session.gc_maxlifetime 是不是仍基于上次修改日期?