51Testing软件测试论坛

标题: 请教高手们一个VBS的问题,在线等 [打印本页]

作者: gengkaipin    时间: 2008-4-9 08:42
标题: 请教高手们一个VBS的问题,在线等
我想在指定的目录中找出最新的文件,应该怎么写脚本啊?谢谢!!!!!
作者: Samon    时间: 2008-4-9 10:01
思路:
1、转到指定的目录;
2、按修改时间来排序文件

下面是我以前写过的一个查找指定目录下面,以指定文件名大头的最新的文件的例子:
 
  1. Function getLatestFilebyCreateTime(folderspec, rule1)
  2.     Dim fso, f, f1, f2, fc, s1,s2
  3.     Set fso = CreateObject("Scripting.FileSystemObject")
  4.         Set f = fso.GetFolder(folderspec)
  5.         Set fc = f.Files
  6.         s1 = "NULL"
  7.         s2 = Date
  8.     For Each f1 in fc
  9.                 if StrComp(Left(CStr(f1.name),Len(rule1)), rule1)  = 0 then            

  10.                     If s2 < f1.DateLastModified  Then
  11.                             s2 = f1.DateLastModified
  12.                             s1 = f1.name
  13.                     End If

  14.                     
  15.         end if
  16.     Next
  17.         getLatestFilebyCreateTime = s1
  18. End Function

  19. Msgbox(getLatestFilebyCreateTime("c:\tt\", "AA_"))
复制代码

作者: jackymail    时间: 2008-4-9 11:09
原帖由 Samon 于 2008-4-9 10:01 发表
思路:
1、转到指定的目录;
2、按修改时间来排序文件

下面是我以前写过的一个查找指定目录下面,以指定文件名大头的最新的文件的例子:
 Function getLatestFilebyCreateTime(folderspec, rule1)
    Dim fs ...


没太看懂呢,那个两个if语句能成立吗?

Function getLatestFilebyCreateTime(folderspec)

    Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFolder(folderspec)
        Set fc = f.Files
        '找最后修改时间
                For each file_name in fc
                        If  file_name.DateLastModified>tmp Then
                                tmp=file_name.DateLastModified
                        End If
                Next
                '找匹配最后修改时间的文件
                For each file_name in fc
                        If  file_name.DateLastModified=tmp Then
                                getLatestFilebyCreateTime=file_name.name
                        End If
                Next
End Function

[ 本帖最后由 jackymail 于 2008-4-9 11:10 编辑 ]
作者: Samon    时间: 2008-4-9 13:09
一个循环就可以搞定,你又为何要用两个循环呢?浪费时间、浪费内存啊,老大!
作者: mustwangrong    时间: 2008-4-9 17:24
标题: 回复 4# 的帖子
嵌套if?闹卵!
作者: hxf    时间: 2008-4-23 10:54
高手呀
作者: lsf4662872    时间: 2008-4-23 18:07
今天正好在学习filesystemobject对象,顺便试着写了几行,不知道可对,第一次在QTP里写脚本,欢迎大家批评指正。代码如下:
function getlatestfilebycreatetime(folderspec)
dim  a ,b,c,d,filename,count
count=1
Set a=createobject("scripting.filesystemobject")
Set b=a.getfolder(folderspec)
Set c=b.files
'd=date
For each filename in c
If count=1 Then
        d=filename.datelastmodified
          count=count+1
         else
           If filename.datelastmodified>=d Then
          d=filename.datelastmodified
         getlatestfilebycreatetime=filename.name
          End If
End If
Next
end function
Dim result
result=getlatestfilebycreatetime("C:\Documents and Settings\Administrator\My Documents")
msgbox result




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2