VBA "Check if folder exists" 仅当文件夹中有文件时有效

VBA "Check if folder exists" works only when there is a file in the folder

我从 www.rondebruin.nl

得到了原始代码

用于测试目录中是否已经存在文件夹。我修改了它以满足我的需要,它似乎运行良好。

今天,我发现它只有在被测试的文件夹不为空时才能正常工作。如果为空,则 return 为假(即文件夹不存在)。

我不明白这是为什么。

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() 总是 return 的东西。但是,给出的示例都是这样的,即 return.

中存在一个文件

我基本上需要得到它,这样它就可以识别文件夹,不管里面有没有东西。

感谢任何帮助!

您可以试试这个:

Dim objFSO 
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(FolderPath)
...

下一行returns如果文件夹存在则为大于0的数字,无论文件夹中是否有任何文件

len(dir("C:\Users\user\Desktop\Tests\tt", vbDirectory))