'*********************************************************
'* 名称:FileExists%(filename$)
'* 功能:此函数用于判断文件是否存在
'* 用法:FileExists%('文件名称')
'* 文件不存在返回 0
'*********************************************************
Function FileExists%(filename$)
Dim F%
On Error Resume Next
F% = FreeFile
Open filename$ For Input As #F%
Close #F%
FileExists% = Not (Err <> 0)
End Function
'* 名称:FileExists%(filename$)
'* 功能:此函数用于判断文件是否存在
'* 用法:FileExists%('文件名称')
'* 文件不存在返回 0
'*********************************************************
Function FileExists%(filename$)
Dim F%
On Error Resume Next
F% = FreeFile
Open filename$ For Input As #F%
Close #F%
FileExists% = Not (Err <> 0)
End Function
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
说明
根据文件名查找文件
返回值
Long,如执行成功,返回一个搜索句柄。如果出错,返回一个INVALID_HANDLE_VALUE常数,一旦不再需要,应该用FindClose函数关闭这个句柄
参数表
参数 类型及说明
lpFileName String,欲搜索的文件名。可包含通配符,并可包含一个路径或相对路径名
lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。该结构可用于后续的搜索
注解
由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件
'* 名称:FileExists%(filename$)
'* 功能:此函数用于判断文件是否存在
'* 用法:FileExists%('文件名称')
'* 文件不存在返回 0
'*********************************************************
Function FileExists%(filename$)
Dim F%
On Error Resume Next
F% = FreeFile
Open filename$ For Input As #F%
Close #F%
FileExists% = Not (Err <> 0)
End Function
msgbox "存在"
endif
本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。Dim MyFile, MyPath, MyName' 返回“WIN.INI” (如果该文件存在)。
MyFile = Dir("C:\WINDOWS\WIN.ini") ' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
' 函数将返回按条件第一个找到的文件名。
MyFile = Dir("C:\WINDOWS\*.ini")' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
MyFile = Dir' 返回找到的第一个隐式 *.TXT 文件。
MyFile = Dir("*.TXT", vbHidden)' 显示 C:\ 目录下的名称。
MyPath = "c:\" ' 指定路径。
MyName = Dir(MyPath, vbDirectory) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一个目录,将其名称显示出来。
End If
End If
MyName = Dir ' 查找下一个目录。
Loop
On Error Resume Next ’设置错误处理
Dim X as Integer
X = FreeFile ’取得一个空闲文件句柄
Open fname$ For Input As X ’试图打开该文件
If Err = 0 Then ’如果打开成功
FileExists = True
Else ’否则
FileExists = False
End If
Close X
End Function
两个参数要结合起来用,如果判断文件,一般Dir(PathName,vbNormal)就可以了
如果文件夹,一般Dir(PathName,vbDirectory)