51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1946|回复: 7
打印 上一主题 下一主题

[原创] 为什么设置属性会失败

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-14 10:48:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim a1,a2,a3,a4
Set a1=createobject("scripting.filesystemobject")
Set a2=a1.createtextfile("e:\14",true)
Set a4=a1.getfile("e:\14")
a4.attributes=ReadOnly
s=a4.attributes
Set a3=a1.opentextfile("e:\15.txt",2,true)
If a4.attributes=normal Then
        a3.writeline"the attributes is normal"
        a3.close
elseif a4.attributes=ReadOnly then
    a3.writeline"the attributes is readonly"
        a3.close
else
    a3.writeline"the attributes is hidden"
        a3.close
End If
每次我检查s都发现s被设置为0,即normal而不是readonly,为什么无法设置成readonly呢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-14 11:00:44 | 只看该作者
原帖由 vincenthan 于 2007-8-14 10:48 发表
Dim a1,a2,a3,a4
Set a1=createobject("scripting.filesystemobject")
Set a2=a1.createtextfile("e:\14",true)
Set a4=a1.getfile("e:\14")
a4.attributes=ReadOnly
s=a4.attributes
Set a3=a1.opentext ...

应该和那个删除时遇到的问题类似,你把文件夹e:\14同时交给了a2和a4两个变量。在程序内会引起混乱,因为其中对一个对象修改了属性而另外一个没有修改,同时他们又都指向一个文件夹。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-8-14 17:59:04 | 只看该作者
Dim a1,a2,a3,a4
Set a1=createobject("scripting.filesystemobject")
Set a2=a1.createtextfile("e:\14",true)
Set a2=nothing
Set a4=a1.getfile("e:\14")
a4.attributes=readonly
s=a4.attributes
Set a3=a1.opentextfile("e:\15.txt",2,true)
If a4.attributes=normal Then
        a3.writeline"the attributes is normal"
        a3.close
elseif a4.attributes=readonly then
    a3.writeline"the attributes is readonly"
        a3.close
else
    a3.writeline"the attributes is hidden"
        a3.close
End If
可我释放了a2,结果还是一样啊sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-14 18:48:05 | 只看该作者
  1. Dim a1,a2,a3,a4
  2. Set a1=createobject("scripting.filesystemobject")
  3. Set a2=a1.createtextfile("e:\14.txt",true)
  4. Set a2=nothing
  5. Set a4=a1.getfile("e:\14.txt")
  6. a4.attributes="1"
  7. s=a4.attributes
  8. If a4.attributes="0"Then
  9. print("Normal")
  10. elseif a4.attributes="1"then
  11. print("readonly")
  12. else
  13. print("error")
  14. End If
复制代码



试试上面的方法.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-8-14 23:07:45 | 只看该作者
关注
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-8-15 09:57:57 | 只看该作者
原帖由 风过无息 于 2007-8-14 18:48 发表
Dim a1,a2,a3,a4
Set a1=createobject("scripting.filesystemobject")
Set a2=a1.createtextfile("e:\14.txt",true)
Set a2=nothing
Set a4=a1.getfile("e:\14.txt")
a4.attributes="1"
s=a4.attributes
...

sdlkfj3 ,果然是这样。问题出在对ReadOnly和Normal等属性值的理解。

QTP或者VBScript帮助里面说明,File对象的Attribute属性可以进行如下操作:
object.Attributes [= newattributes]
其中object是File对象,newattributes则是该对象的新属性。
帮助里面同时例举了所有可能的属性值,但是ReadOnly和Normal等属性名称不能直接用于脚本,而应该用实际的值。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-8-15 16:35:32 | 只看该作者
原来是这样,我还以为normal和readonly都是QTP中固定的常量呢,谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-8-15 16:49:11 | 只看该作者
学习
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 11:47 , Processed in 0.070554 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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