2013-04-29 9 views
6

特定のフォルダ内のファイルを '最終更新日'の降順でループする必要があります。'Last Modified Date'に基づいてフォルダ内のすべてのファイルをループする

ループの最初の反復では、読み込みと終了のために直近に変更されたファイルを開く必要があります。 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

+0

完璧に作業しました! – slayernoah

+0

このスクリプトは、ファイルのリストを2回エコーします。一度任意の順序で、一度日付でソートします。リストが最初にエコーされた理由が、ソートされていないのではないかと疑問に思っている人には、これを言及してください。 –

関連する問題