我从www.rondebruin.nl获得了原始代码
它旨在测试目录中是否已存在文件夹。我修改它以满足我的需要,它似乎运作良好。
今天,我发现如果正在测试的文件夹不为空,它只能正常工作。如果它为空,则返回false(即文件夹不存在)。
我无法弄清楚为什么会这样。
FolderPath = sPfad
If Right(FolderPath, 1) <> "\" Then
FolderPath = FolderPath & "\"
End If
TestStr = ""
On Error Resume Next
TestStr = Dir(FolderPath)
On Error GoTo 0
If TestStr = "" Then
Test_Folder_Exist_With_Dir = False
Exit Function
Else
Test_Folder_Exist_With_Dir = True
Exit Function
End If
我怀疑答案在于TestStr = Dir(FolderPath)
但是还没有能够触及它的底部。 MSDN article基本上解释了Dir()
始终返回的内容。但是,示例给出的都是存在要返回的文件。
我基本上需要得到它,以便它识别文件夹,无论其中是否有内容。
任何帮助表示赞赏!
答案 0 :(得分:3)
如果文件夹存在,以下行返回大于0的数字,无论文件夹中是否包含任何文件
len(dir("C:\Users\user\Desktop\Tests\tt", vbDirectory))
答案 1 :(得分:2)
您可以尝试这样做:
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(FolderPath)
...