2013-04-29 27 views
6

Tôi cần lặp qua các tệp trong một thư mục nhất định theo thứ tự giảm dần của 'Ngày sửa đổi lần cuối'.Lặp qua TẤT CẢ các tệp trong một thư mục dựa trên 'Ngày sửa đổi lần cuối'

Trong lần lặp đầu tiên của vòng lặp, tôi cần có thể mở tệp được sửa đổi gần đây nhất để đọc và đóng nó. Trong phiên thứ hai, tôi cần để có thể mở 2 tập tin cập nhật gần đây nhất cho việc đọc và đóng nó vv

  1. Có được xây dựng trong phương pháp cho phép một FileSystemObject để sắp xếp các tập tin hay chúng ta hoàn toàn phải viết thường trình sắp xếp tùy chỉnh?

  2. Nếu chúng ta phải đi với một thói quen sắp xếp tùy chỉnh, có thể viết điều này mà không có nhiều chức năng không? tức là tất cả mã trong một hàm chính.

  3. Tốc độ là mối quan ngại vì phải có nhiều tệp để sắp xếp. Vì vậy, bất kỳ thủ tục tùy chỉnh nào cũng có hiệu quả.

Trả lời

9

Bạn có thể đọc tên tập tin và ngày thành một ngắt kết nối recordset và sắp xếp mà theo ngày:

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

Thanks a lot. Tôi sẽ thử điều này và cho bạn biết! – slayernoah

+0

Làm việc hoàn hảo! – slayernoah

+0

Tập lệnh này lặp lại danh sách các tệp hai lần. Một lần theo thứ tự tùy ý, sau đó một lần được sắp xếp theo ngày. Chỉ cần đề cập đến điều này trong trường hợp bất cứ ai đang tự hỏi tại sao danh sách lặp lại đầu tiên không được sắp xếp. –