51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1705|回复: 4
打印 上一主题 下一主题

[原创] GetSpecialFolder 问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-8 17:42:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请大家看下下面的代码?

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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-9-9 10:44:15 | 只看该作者
自己顶一下,请达人解答下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-9 11:13:05 | 只看该作者
代码有问题,关键在这一句:
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#
 楼主| 发表于 2008-9-9 11:26:32 | 只看该作者
晕啊, 多谢楼上的兄弟
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-9-9 11:49:31 | 只看该作者

回复 4# 的帖子

不客气

其实有的时候我们都容易忽略一些参数上的细节
很多开发技巧其实就是这些细节上的问题
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 09:40 , Processed in 0.073135 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表