GetSpecialFolder 问题
请大家看下下面的代码?msgbox 显示文件夹tfolder的路径是 QTP安装路径
而在tfolder下创建的文本tfile却被保存在 系统环境变量tmp路径下
请问tfolder msgbox显示的路径和实际路径不同呢 ?
Dim fso, tempfile
Set fso = CreateObject("Scripting.FileSystemObject")
Function CreateTempFile
Dim tfolder, tname, tfile
Const TemporaryFolder = 2
Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
tname = fso.GetTempName
msgbox fso.getabsolutepathname (tfolder.name)
msgbox tname
Set tfile = tfolder.CreateTextFile(tname)
Set CreateTempFile = tfile
End Function
Set tempfile = CreateTempFile
tempfile.WriteLine "Hello World"
tempfile.Close 自己顶一下,请达人解答下 代码有问题,关键在这一句:
msgbox fso.getabsolutepathname (tfolder.name)
应该是
msgbox fso.getabsolutepathname (tfolder.path)
tfolder.name仅仅是文件夹名字,这里得到的值是"temp"
你了解fso的一些用法,应该知道getabsolutepathname 是用来获取绝对路径的
当没有给出路径结构说明的时候(没有盘符如c:,d:以及分隔符\,还有*等匹配符),
就当作当前pathname对待,用当前路径+pathname来获得绝对路径
当前路径其实就是qtp的执行文件路径,比如D:\Program Files\Mercury Interactive\QuickTest Professional\bin
再加上pathname在你的代码里就是tfolder.name,值为"temp",于是就成了
D:\Program Files\Mercury Interactive\QuickTest Professional\bin\temp
这样得到的结果你msgbox出来,当然就不对了
[ 本帖最后由 rcpp 于 2008-9-9 11:14 编辑 ] 晕啊, 多谢楼上的兄弟
回复 4# 的帖子
不客气其实有的时候我们都容易忽略一些参数上的细节
很多开发技巧其实就是这些细节上的问题
页:
[1]