【发布时间】:2020-05-26 07:26:20
【问题描述】:
我做了一些阅读,并想出了以下代码:
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"
我试过了:
oFSO.CreateFolder (TRIM(NewFolderPath))
oFSO.CreateFolder (TRIM(NewFolderPath) & "\")
oFSO.CreateFolder TRIM(NewFolderPath)
oFSO.CreateFolder TRIM(NewFolderPath) & "\"
我还找到了this question,但不确定它是否适用。我怀疑它可能与路径中的空格有关,但将行更改为:
oFSO.CreateFolder """" & NewFolderPath & """"
它产生了一个错误的文件名错误。
据我所知,我对文件夹 C:\Users\me\Desktop\LOCAL CPS folder\Vision 2020\191007\MTOD 拥有完全的读/写权限。我一开始就创建了它。我正在尝试创建子文件夹\Archive\20020124。当查看文件资源管理器时,该文件夹不会显示在目录中,因此它不是已经存在的情况。
我在创建该文件夹时做错了什么?
更新:
我想我可能已经明白了。是否需要先创建文件夹Archive,然后再创建文件夹20020124?
【问题讨论】:
-
您是要创建一个文件夹还是多个文件夹(即调用代码时路径的多个部分不存在)?
-
@TimWilliams 我刚刚对那部分进行了澄清。在阅读您的评论之前,我正在编辑。我正在尝试添加
\Archive\20020124 -
答案是肯定的——你需要依次创建每个部分。
-
@TimWilliams 感谢您的确认。我有那个链接作为第一季度。显然我需要更仔细地阅读!