Как я могу использовать FileSystemObject для «копирования и переименования»

С помощьюFileSystemObject в VB / VBA (или, я думаю, родные вызовы VBA), как я могу:

Копировать папкуПереименовать папку

Итак, что-то вроде:

mFSO.CopyAndRename(targetFolder, copyDirectory, copyFolderName)

Я в основном сделал это сам, но я бы предпочел более чистый вызов метода, такой как приведенный выше (иCopyFolder метод). Это похоже на много кода и много потенциальных точек сбоя ...

'
''requires reference to Microsoft Scripting Runtime


Public Function CopyDirectory(ByVal p_copyDirectory As String, p_targetDirectory As String, Optional p_newName As String = "") As Boolean
    CopyDirectory = False
    Dim m_fso 
    Set m_fso = New FileSystemObject

    Dim mFolder, mNewFolder

    If Not Me.DoesPathExist(p_copyDirectory) Then
        Exit Function
    Else

        On Error GoTo errHandler
         Set mFolder = m_fso.GetFolder(p_copyDirectory)
         mFolder.Copy p_targetDirectory, False

         'rename if a "rename" arg is passed
         If p_newName <> "" Then
            If DoesPathExist(p_targetDirectory & mFolder.Name) Then
                Set mNewFolder = m_fso.GetFolder(p_targetDirectory & mFolder.Name)
                mNewFolder.Name = "test" & CStr(Rnd(9999))
            Else
            End If
         End If

         CopyDirectory = True
        On Error GoTo 0

        Exit Function
    End If

errHandler:
    Exit Function

End Function

Ответы на вопрос(3)

Ваш ответ на вопрос