MyTetra Share
Делитесь знаниями!
Проверить существование файла - VBA (Для сетевых директорий)
16.03.2019
23:43
Раздел: !Закладки - VBA

'Глюк в ExistDir

'Автор: Игорь Мальцев


'При разработке приложений в VB или VBA часто возникает потребность в

'функциях ExistFile и ExistDir, проверяющих существование файла или папки. В

'литературе встречаются такие примеры:



Public Function ExistFile(ByVal strFileName As String) As Boolean

ExistFile = False

On Error GoTo f1

ExistFile = (Dir(strFileName) <> "")

f1:

On Error GoTo 0

End Function


Public Function ExistDir(ByVal dirName As String) As Boolean

ExistDir = False

On Error GoTo f1

If Len(dirName) < 2 Then GoTo f1

If Right(dirName, 1) = "\" Then dirName = Left(dirName, Len(dirName) - 1)

ExistDir = (Dir(dirName, vbDirectory) <> "")

f1:

On Error GoTo 0

End Function



'Однако, при попытке применить функцию ExistDir к сетевым путям, обнаруживается, что она работает неверно,

'возвращая, например, False для существующей папки \\MAIN\POST$.

'Небольшая модификация этой фунции позволяет использовать ее как для

'обычных, так и сетевых путей:


Public Function ExistDir(ByVal dirName As String) As Boolean

ExistDir = False

On Error GoTo f1

If Len(dirName) < 2 Then GoTo f1

If Right(dirName, 1) = "\" Then dirName = Left(dirName, Len(dirName) - 1)

If Left(dirName, 2) = "\\" Then

ExistDir = (Dir(dirName + "\", vbDirectory) <> "")

Else

ExistDir = (Dir(dirName, vbDirectory) <> "")

End If

f1:

On Error GoTo 0

End Function

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования