八一军旗红简谱:Dir语句在VB中有什么用?

来源:百度文库 编辑:高考问答 时间:2024/05/06 02:11:41
Dir语句在VB中主要是干什么的?怎么用?

简单讲,就是搜索文件咯
f=dir("D:\1.txt")
如果1.txt存在,则f="1.txt"
如果1.txt不存在,则f=""

也可以用通配符*和?
如D盘根目录下存在
1.txt
12.txt
123.txt

f=dir("D:\?.txt") 'f=1.txt
f=dir("D:\*2.txt") 'f=12.txt
f=dir("D:\???.txt")'f=123.txt

如果要搜索该目录下的全部文件则
f=dir("D:\*")
do while f<>""
' f为文件名
f=dir '不带参数,则会搜索下一个文件
loop

dir用来查找文件.

使用dir
Option Explicit
Dim filesearch As String
Dim findflag As Boolean

' 清空搜索结果
Private Sub clrcmd_Click()
lstfiles.Clear
End Sub

' 开始查找文件
Private Sub cmdgo_Click()
Dim starttime As Single
Dim i As Integer
Dim Add As Boolean

lstfiles.Clear '查找文件之前先清空结果
lstdirs.Clear
findflag = True '设置查找标志
stopcmd.Enabled = True '设置停止查找按钮为可用
clrcmd.Enabled = False '设置清空结果按钮为不可用
starttime = Timer '记录开始查找时刻
filesearch = Combo1.Text
' 将查找文件加入到组合框中
For i = 0 To Combo1.ListCount - 1
If Combo1.List(i) <> Combo1.Text Then
Add = True
Else
Add = False
End If
Next
If Add = True Then
Combo1.AddItem (Combo1.Text)
End If
lstdirs.AddItem (Drive1.Drive & "\")
' 执行查找文件
Do
status.Caption = "Searching . . . " & lstdirs.List(0)
' 调用函数
findfilesdir lstdirs.List(0)
' 从目录列表中移除
lstdirs.RemoveItem 0
' 中途退出查找
If findflag = False Then
Exit Do
End If
Loop Until lstdirs.ListCount = 0
stopcmd.Enabled = False
clrcmd.Enabled = True

' 显示查找文件的信息
status.Caption = "用时" & Timer - starttime & "秒 " & "找到" & lstfiles.ListCount & "个文件"
End Sub

' 用来查找文件的函数
Public Sub findfilesdir(DirPath As String)
Dim filestring As String
DirPath = Trim(DirPath)

If Right(DirPath, 1) <> "\" Then
DirPath = DirPath & "\"
End If
' 使用Dir函数获得DirPath目录下的文件或目录
filestring = Dir(DirPath & "*.*", vbArchive Or vbHidden Or vbSystem Or vbDirectory)
Do
DoEvents '转让控制权,以便让操作系统处理其它的事件
If filestring = "" Then
Exit Do
Else
If (GetAttr(DirPath & filestring) And vbDirectory) Then
If Left(filestring, 1) <> "." And Left(filestring, 2) <> ".." Then
lstdirs.AddItem DirPath & filestring & "\"
End If
Else
' 比较以确定是否是要查找的文件
If (filestring Like filesearch) Then
lstfiles.AddItem DirPath & filestring
End If
End If
End If
filestring = Dir ' 返回其他文件名
Loop
End Sub

' 结束退出
Private Sub quitcmd_Click()
Unload Me
End
End Sub

' 停止查找
Private Sub stopcmd_Click()
findflag = False
stopcmd.Enabled = False
End Sub

Private Sub Form_Load()
Combo1.AddItem ("*.*")
End Sub