| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4724 人关注过本帖
标题:vb (GetAttr(mypath & MyName) And vbDirectory) = vbDirectory的问题
只看楼主 加入收藏
kkllchun
Rank: 2
等 级:论坛游民
帖 子:55
专家分:13
注 册:2007-9-15
结帖率:70%
收藏
已结贴  问题点数:10 回复次数:8 
vb (GetAttr(mypath & MyName) And vbDirectory) = vbDirectory的问题
(GetAttr(mypath & MyName) And vbDirectory) = vbDirectory
 GetAttr(mypath & MyName) 取得文件夹的属性  and vbdirectory 文件夹  = vbDirectory 判断是否为文件夹
搞不懂为什么还要加 and vbdirectory
google baidu 找了下没有解答我的问题的郁闷
搜索更多相关主题的帖子: And vbDirectory MyName mypath GetAttr 
2010-01-20 14:42
freeforever
Rank: 4
等 级:业余侠客
威 望:3
帖 子:368
专家分:201
注 册:2005-11-2
收藏
得分:0 
发GetAttr(string para)上来

其实我也很无聊!
2010-01-20 15:00
kkllchun
Rank: 2
等 级:论坛游民
帖 子:55
专家分:13
注 册:2007-9-15
收藏
得分:0 
Private Sub Command1_Click()
Dim myfile, mypath, myname
myfile = Dir("c:\*.txt")
myfile = Dir()
myfile = Dir("*.bmp", vbHidden)

mypath = "c:\"
myname = Dir(mypath, vbDirectory)
Do While myname <> ""
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
Print myname
End If
myname = Dir()
Loop
End Sub

 
2010-01-20 15:07
kkllchun
Rank: 2
等 级:论坛游民
帖 子:55
专家分:13
注 册:2007-9-15
收藏
得分:0 
哎 ~
2010-01-20 16:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
过程应该是列出 C 盘下的所有的目录

------------------------------
Private Sub Command1_Click()
Dim myfile, mypath, myname
myfile = Dir("c:\*.txt")                    '这三句都是你调试时用的吧.
myfile = Dir()
myfile = Dir("*.bmp", vbHidden)

mypath = "c:\"                              '路径写入变量
myname = Dir(mypath, vbDirectory)           '取目录及所有的文件
Do While myname <> ""                       '取到不为空
' GetAttr 返回一个文件或目录的属性. 返回是一个 整形数据
' Const vbDirectory = 16  代表目录
' AND ,这里是 位运算 不是逻辑运算
' 文件或目录属性 AND 目录属性代码 = 0 或 目录属性代码 ,然后再与目录属性代码比较,相等,则是目录,否则就不是.
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
Print myname
End If
myname = Dir()
Loop
End Sub



授人于鱼,不如授人于渔
早已停用QQ了
2010-01-20 17:30
kkllchun
Rank: 2
等 级:论坛游民
帖 子:55
专家分:13
注 册:2007-9-15
收藏
得分:0 
回复 5楼 风吹过b
多谢老师
2010-01-20 19:01
kkllchun
Rank: 2
等 级:论坛游民
帖 子:55
专家分:13
注 册:2007-9-15
收藏
得分:0 
And vbDirectory 意思是不超过16 这样    理解对不
10000 与10000位运算是 还是10000 也是就 16与16的位运算是16 如果其他属性比较 16 = 16结果为真
00001与10000位运算 就是0  也是就 1与16位运算是0 0<>16 结果为假

[ 本帖最后由 kkllchun 于 2010-1-20 19:13 编辑 ]
2010-01-20 19:06
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 

运算规则

  组合\结果\运算符.....And.......Or.........Xor
  0......0.............0..........0............0
  1......0.............0..........1............1
  0......1.............0..........1............1
  1......1.............1..........1............0

  简单的说
  And:同为真时为真
  Or:同为假时为假
  Xor:相同为假

----------以上内容来自百度百科-------------
所以
16 and 16 = 16
15 and 16 = 0

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-20 20:18
btxdlibin
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2007-6-2
收藏
得分:0 
位运算   
And

举例:X And &H1000
简单点理解为  把X换算成十六进制后如果第四个位置(从右开始数)上是1的话,其结果就是:&H1000,否则为0
这是检查某个数值中包不包含另外一个参数的最常用的方法.
  
2010-01-24 20:44
快速回复:vb (GetAttr(mypath & MyName) And vbDirectory) = vbDirectory的问题 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032584 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved