2013-04-29 46 views
6

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

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

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

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

  3. 速度是一个问题,因为有很多文件需要排序。因此任何定制程序都应该是有效的。

回答

9

你可以读取该文件的名称和日期,断开的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 
+0

非常感谢。我会试试这个,让你知道! – slayernoah 2013-05-13 14:59:40

+0

工作完美! – slayernoah 2013-08-05 17:25:08

+0

此脚本回显文件列表两次。一旦按照任意顺序,然后按日期排序。只要提到这一点,以防万一有人想知道为什么首先回显列表没有排序。 – 2017-09-30 19:33:17

相关问题