Метод CreateFolder продолжает выдавать ошибку 76 «Путь не найден» при попытке создать новую папку - PullRequest
0 голосов
/ 11 февраля 2020

Я немного прочитал и придумал следующий код:

Function ExistingDir(ByVal strPath As String) As Boolean

Dim oFSO As Object
    If Right(strPath, 1) = "\" Then strPath = Left(strPath, Len(strPath) - 1)

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    ExistingDir = oFSO.FolderExists(strPath)

End Function

Sub CreateDir(ByVal NewFolderPath As String)
Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CreateFolder (NewFolderPath) '<<=== Error line
End Sub

, и они вызываются следующим образом, поэтому им отправляется одна и та же строка пути:

If Not ExistingDir(ArchivePath) Then
    CreateDir ArchivePath

Первый проверяет, существует ли каталог, а второй создает каталог. Я продолжаю получать следующую ошибку при выполнении кода:

enter image description here

Когда я смотрю в окно Locals, я вижу значение для NewFolderPath:

"C:\Users\me\Desktop\LOCAL CPS folder\Vision 2020\191007\MTOD\Archive\20200124"

Я прочитал следующие вопросы Q1 Q2 Q3

Я пытался:

oFSO.CreateFolder (TRIM(NewFolderPath))
oFSO.CreateFolder (TRIM(NewFolderPath) & "\")
oFSO.CreateFolder TRIM(NewFolderPath)
oFSO.CreateFolder TRIM(NewFolderPath) & "\"

Я также нашел этот вопрос , хотя не уверен, что он применим. Я подозревал, что это может быть связано с пробелами в пути, но изменив строку на:

oFSO.CreateFolder """" & NewFolderPath & """"

Произошла ошибка с ошибкой имени файла.

У меня полный доступ на чтение / запись к папка C:\Users\me\Desktop\LOCAL CPS folder\Vision 2020\191007\MTOD, насколько мне известно. Я создал это для начала. Я пытаюсь создать подпапку \Archive\20020124. И при просмотре файлового проводника папка не отображается в каталоге, поэтому ее уже нет.

Что я делаю не так для создания этой папки?

Обновление:

Думаю, я понял это. Нужно ли создавать папку Archive, затем создавать папку 20020124?

1 Ответ

0 голосов
/ 12 февраля 2020

Для тех, кто смотрит на это в будущем, ответ таков: вам нужно создавать подкаталоги по одному. Q1 в вопросе имеет много ответов, показывающих, как это сделать. Также обратите внимание на подтверждение Тима Уильямса о том, что это правильный подход и что попытка сгенерировать \ Archive \ Date за один шаг была причиной проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...