日期:2010-06-28  浏览次数:21039 次

  其实没有题目写得那么复杂,就是用计划任务每隔一段时间调用VBS脚本,刷新生成一个文件列表文件用于WEB服务调用。

Option Explicit
On Error Resume Next

'生成列表的文件类型
Const sListFileType = "wmv,rm,wma"

'文件所在的相对路径
Const sShowPath="."

'排序类型的常量定义
Const iOrderFieldFileName = 0
Const iOrderFieldFileExt = 1
Const iOrderFieldFileSize = 2
Const iOrderFieldFileType = 3
Const iOrderFieldFileDate = 4

'排序顺逆的常量定义
const iOrderAsc = 0
const iOrderDesc = 1

'生成列表的文件数量
const iShowCount = 20


 
'显示的日期格式函数
Function Cndate2(date1,intDateStyle)
 dim strdate,dDate1
    strdate=cstr(date1)
    If Isdate(strdate) Then
        If Left(cstr(strdate),1)="0" Then
            dDate1=Cdate("20"+cstr(strdate))
        else
            dDate1=Cdate(strdate)
        End If
    Else
      dDate1=Now()
    End If
    Select case intDateStyle
    Case 1:
     Cndate2 = Cstr(Year(dDate1))+"-"+Cstr(Month(dDate1))+"-"+Cstr(Day(dDate1))
    Case 2:
     Cndate2 = Cstr(Month(dDate1))+"-"+Cstr(Day(dDate1))
    Case 3:
     Cndate2 = Cstr(Month(dDate1))+"月"+Cstr(Day(dDate1))+"日"
    Case 4:
     Cndate2 = Cstr(year(dDate1))+"年"+ Cstr(Month(dDate1))+"月"+Cstr(Day(dDate1))+"日"
    End Select
End Function


Function ListFile(strFiletype,intCompare,intOrder,intShowCount)
 Dim sListFile
 Dim fso, f,  f1,  fc, s,ftype,fcount,i,j,k
 Dim t1,t2,t3,t4,t5
 Dim iMonth,iDay
 sListFile = ""
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set f = fso.GetFolder(sShowPath)
 Set fc = f.Files
 fcount = fc.count
 redim arrFiles(fcount,5)
 redim arrFiles2(fcount,5)
 i=0
'排序
 For Each f1 in fc
  ftype = right(f1.name,len(f1.name)-instrrev(f1.name,"."))
  arrFiles(i,0) = f1.name
  arrFiles(i,1) = ftype
  arrFiles(i,2) = f1.size
  arrFiles(i,3) = f1.type
  arrFiles(i,4) = f1.DateLastModified
  i=i+1
 Next
 For i=0 to fcount-1
  for j=i+1 to fcount-1
   select Case intCompare
   Case iOrderFieldFileName,iOrderFieldFileExt,iOrderFieldFileType:
    If arrFiles(i,intCompare)>arrFiles(j,intCompare) then
     t1 = arrFiles(i,0)
     t2 = arrFiles(i,1)
     t3 = arrFiles(i,2)
     t4 = arrFiles(i,3)
     t5 = arrFiles(i,4)

     arrFiles(i,0) = arrFiles(j,0)
     arrFiles(i,1) = arrFiles(j,1)
     arrFiles(i,2) = arrFiles(j,2)
     arrFiles(i,3) = arrFiles(j,3)
     arrFiles(i,4) = arrFiles(j,4)

     arrFiles(j,0) = t1
     arrFiles(j,1) = t2
     arrFiles(j,2) = t3
     arrFiles(j,3) = t4
     arrFiles(j,4) = t5
    end if
   Case iOrderFieldFileSize:
    If cdbl(arrFiles(i,intCompare))>cdbl(arrFiles(j,intCompare)) then
     t1 = arrFiles(i,0)
     t2 = arrFiles(i,1)
     t3 = arrFiles(i,2)
     t4 = a