使用文件系统对象在 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
实际上 Scripting.FileSystemObject 上有一个名为 CopyFolder 的方法。它可用于一步完成复制和重命名,如下所示:
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.copyFolder "C:\Path\to\source\folder", "C:\Path\to\destination\folder" true
我在这里找到了代码:http://vba-tutorial.com/copy-a-folder-and-all-of-its-contents/
希望这能回答您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)