Я немного прочитал и придумал следующий код:
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
Первый проверяет, существует ли каталог, а второй создает каталог. Я продолжаю получать следующую ошибку при выполнении кода:
Когда я смотрю в окно 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
?