代码如下:
Function tempFilePath(datapath,filename)
On error resume next
Set fso=createobject("scripting.filesystemobject")
If fso.FolderExists(datapath) Then
Set firstsub=fso.GetFolder(datapath)
For each testfolder in firstsub.SubFolders
strpath=datapath&"\"&testfolder.name
tempFilePath strpath,filename
Next
For each testfile in firstsub.Files
' print testfile.name
If instr(1,testfile.name,filename,1)0 Then
logpath=environment.Value("RunLogs")
'If not fso.FileExists(logpath&"\FilePaths.txt") Then
set logfile=fso.CreateTextFile(logpath&"\FilePaths.txt",true)
logfile.WriteLine testfile.path
else
'ReportProgress(Text, Title, TimeOut)
'ReportProgress "在指定的路径下没有找到你需要的文件"
End If
Next
else
'ReportProgress(Text, Title, TimeOut)
reportProgress "enviroment文件中的测试路径找不到,请确认你的environment文件正确配置或者加载到QTP中,使用loadQTPXML方法进行加载XML文件到QTP中!",2
End If
logfile.Close
Set logfile=nothing
Set firstsub=nothing
Set fso=nothing
End Function
'*******************************************************************************************
'
'功能:通过QTP的自身的环境变量进行确认相关的需要的路径
'*******************************************************************************************
Function getFilePath(filename)
On error resume next
Set tfso=createobject("scripting.filesystemobject")
testfiles=environment.Value("RunLogs")
datapath=environment.Value("TestPath")
tempFilePath datapath,filename '引入的下面的文件的遍历操作
set openfile=tfso.OpenTextFile(testfiles&"\FilePaths.txt")
getFilePath=trim(openfile.ReadLine) '读取临时的log文件中的第一行的路径名称
openfile.Close
Set openfile=nothing
Set fso=nothing
End Function
如果需要的话,我回头再给你弄下搜索文件的方法,不过我觉得你这样效率还是很低的,不晓得你为什么要遍及整个电脑目录。