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))
我从 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))