MyTetra Share
Делитесь знаниями!
Проверить существование файла - VBA (Для сетевых директорий)
Время создания: 31.07.2019 22:55
Раздел: !Закладки - VBA - FSO
Запись: xintrea/mytetra_db_adgaver_new/master/base/1506483790wcgj6xk986/text.html на raw.githubusercontent.com

'Глюк в 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.59
Яндекс индекс цитирования