VB文件系统编程中的常用函数
1、功能:
返回一个String型或者Variant型的值来表示当前的路径(默认路径)
2、语法:CurDir
3、案例:
窗体加载之后显示当前的默认路径
代码:
Private Sub Form_Load()
Show
Print "当前默认路径为:" & CurDir
End Sub
执行前后结果见图


1、功能:
返回一个integer类型的值,用于表示对应文件的属性,常常SetAttr语句一起使用(见笔者之前写的经验)。
2、语法:GetAttr(文件字符串) and 属性常数
该语句用于得到一个值确定特定的属性是否设置,如果设置了则返回非零数值,如果未设置则返回0
属性常数对应于各个属性,也可以为属性常数对应的值
GetAttr返回值表如下:
常数----值----描述
vbnormal----0----常规
vbReadonly----1----只读
vbHidden----2----隐藏
vbSystem----4----系统文件
vbDirectory----16----目录或文件夹
vbArchive----32----上次备份以后文件已经改变
vbalias----64----指定文件名是别名
3、案例:
本案例检测E盘文件夹下的只读属性是否勾选
代码:
Private Sub Command1_Click()
Dim a As Integer
a = GetAttr("E:\新文件.txt") And vbReadOnly
If a <> 0 Then
MsgBox "该文件只读属性已经勾选"
Else
MsgBox "该文件只读属性未勾选"
End If
End Sub
执行前后结果见图
其他属性检测笔者就不一一举例了,读者可以自己试试其他属性以加强印象


1、功能:
该函数用于获取文件创建或最近修改的日期和时间值,该函数的返回值是一个Date型值或者Variant型的值
2、语法:
FileDateTime(表示文件路径的字符串)
3、案例:
本案例用于获取本人计算机E盘根目录下名为“新文件.txt”的文件的最后修改时间或创建时间。
代码:
Private Sub Command2_Click()
Dim Date1 As Date
Date1 = FileDateTime("E:\新文件.txt")
MsgBox "文件的最后修改时间是:" & Date1
End Sub


1、功能:
该函数返回一个long型值,表示获取的目标文件的长度,以字节为单位
2、语法:FileLen(表示文件路径的字符串)
3、案例:
获取本人计算机E盘根目录下的“新文件.txt”文件的长度
代码如下:
Private Sub Command3_Click()
MsgBox "获取的文件长度为:" & FileLen("E:\新文件.txt")
End Sub


1、功能:
对于该函数笔者查阅了几本教科书对于该函数的解释,基本上原解释都是“该函数用于测试文件的结束状态”。总感觉这样的解释让人摸不到头脑,什么是结束,什么是开始,都没说清楚。
其实要说清楚这个问题需要引入一个叫“指针”的概念,所谓“指针”可以理解为文件的输入“光标”。我们都知道,在对文件进行编辑操作的时候光标指向哪里,输入就会从哪里开始输入,而该函数实际上就是用于测试这个光标是否是到了文件的最末尾。
2、语法:EOF(文件号)
该函数返回值有两个值,true或者false,如果指针到达文件末尾,则返回true,如果指针不在文件末尾,则返回false。
文件号就是我们在使用open语句的时候给某个文件的文件号。
3、举例:
本例笔者举两个例子:
例子一:
笔者将指针不设置在文件的最后,观察EOF的返回值
Private Sub Command4_Click()
Open "E:\新文件.txt" For Input As #1
Seek #1, 2 '将指针指向第二个字符
MsgBox EOF(1)
Close #1
End Sub
例子二:
笔者将指针设置在文件的最后,也就是第三个字符位
Private Sub Command4_Click()
Open "E:\新文件.txt" For Input As #1
Seek #1, 3 '将指针指向第三个字符位
MsgBox EOF(1)
Close #1
End Sub



1、功能:
返回已经打开的文件的大小,返回值类型是LONG型
注意是已经打开的文件的大小,如果文件没有使用open语句打开,则不能返回大小。这也是和FileLen函数的区别。
2、语法:LOF(文件号)
3、举例:
通过LOF函数获得E盘跟目录下“新文件.txt”的文件大小
代码:
Private Sub Command5_Click()
Open "E:\新文件.txt" For Input As #1
MsgBox LOF(1)
Close #1
End Sub

