主题:关于Dir函数的疑问
xjh22700
[专家分:320] 发布于 2008-04-17 12:14:00
请问各位高手,Dir()函数有时会返回"."或"..",这各代表什么意思啊?这个函数不是返回一个 String,用以表示一个文件名、目录名、文件夹名称或空字符串吗?怎么会有这两项返回值?
回复列表 (共8个回复)
沙发
joforn [专家分:1460] 发布于 2008-04-17 15:35:00
"." 代表当前目录
".." 代表上一级目录
板凳
xjh22700 [专家分:320] 发布于 2008-04-18 01:05:00
根据1楼的回答,我做了个实验,在我的电脑上运行:
Dim FileName As String
FileName = Dir("F:\", 31)
While FileName <> ""
Print FileName
FileName = Dir
DoEvents
Wend
输出下列结果:
..
System Volume Information
Recycled
网络操作系统实验
SQL data
VB
CCNA
电脑知识
SQL Server
论文
VC++
汇编语言
JAVA
为什么第一项输出是"..",这怎么解释,难道说这是表示F:盘的上级目录吗?(搜索C、D、E盘却没有输出"..")
3 楼
asanscape [专家分:1350] 发布于 2008-04-18 21:51:00
FileName = Dir("F:\", 31)中的21是啥东东?以后最好用vb开头的参数名啦.如vbDirectory等.谁记得21是啥东东?或是啥东东的组合?
4 楼
bcahzvip [专家分:6040] 发布于 2008-04-19 01:27:00
vbDirectory or vbHidden or vbNormal or vbReadOnly or vbSystem or vbVolume '31
vbDirectory or vbSystem or vbNormal '21
vbfileattribute
5 楼
xjh22700 [专家分:320] 发布于 2008-04-19 23:34:00
31=0+1+2+4+8+16
各值的意义如下,这里用31只是为了节省代码!
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly 1 指定无属性的只读文件
vbHidden 2 指定无属性的隐藏文件
VbSystem 4 指定无属性的系统文件
vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume
vbDirectory 16 指定无属性文件及其路径和文件夹。
6 楼
xjh22700 [专家分:320] 发布于 2008-04-19 23:43:00
没人能回答我的问题吗?
Dir函数有时返回"."和".."是表示什么意思啊?
7 楼
老大徒伤悲 [专家分:29120] 发布于 2008-04-23 19:32:00
这个问题并不难。你先去看看DOS,就明白了。
8 楼
我是大喊三 [专家分:3010] 发布于 2008-04-25 00:34:00
以FAT分区格式来说“。”和“。。”在目录区里是实际有目录项的,也就是说它并非只是作为一个命令的逻辑上的参数跟在后面。“。”的簇指针指向当前目录区首簇,“。。”则指向上级目录区首簇。这样通过CD。。回到上级目录的方式就与“CD 目录名” 这种命令格式统一了起来。我想之所以这样实现,可能与内存空间还是比磁盘空间显的宝贵的原因吧?因为CD命令不必依靠在内存中维持一个目录的指针链,来返回上一级目录,因为每个目录区都在磁盘上有“。。”目录项,它们都记录着上级目录区的首簇。
我来回复