Как проверить доступность файла? - PullRequest
1 голос
/ 16 июня 2020

Моя тестовая подпрограмма не работает, когда задействовано неподключенное прямое сетевое соединение (\ server \ name \ file.txt).

Ошибка выполнения 52, неправильное имя файла или номер.

На некоторых компьютерах папка не отображается. Есть ли способ проверить это или способ обойти это?

Кажется, работает, если я использую подключенный сетевой диск отдельно.

Sub Example()

Dim netPath, mapPath as String

netPath = "\\server\name\file.txt"
mapPath = "H:\name\file.txt"

If Len(Dir(netPath, vbDirectory)) > 0 Or Len(Dir(mapPath, vbDirectory)) > 0 Then
    GoTo Continue
Else
    rspn = MsgBox("Error", vbCritical, "Error")
    Application.DisplayAlerts = False
    If Workbooks.Count > 1 Then
        ThisWorkbook.Close
    Else
        Application.Quit
    End If
    Exit Sub
End If

Continue:
'My normal code here

End Sub

1 Ответ

0 голосов
/ 16 июня 2020

Метод Dir() выдает ошибку, если родительская папка / диск не существует.

Используйте FileSystemObject, чтобы проверить, существует ли файл. Он не выдает ошибку, а просто возвращает false, если это не так.

With CreateObject("Scripting.FileSystemObject")
    If .FileExists(filepath) Then '...
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...