我正在尝试将文件批量移动到具有新名称的新文件夹中。例如,我希望从以下位置移动所有文件:
C:\cat\
C:\dog\
至:
C:\test\cat-1234\
C:\test\dog-2477\
我想以这种方式移动大约400个文件夹。
目标文件夹将始终包含原始文件夹名称。
发布于 2012-05-09 00:41:49
可以,您可以将文件从一个文件夹复制到另一个文件夹。你可以使用API SHFileOperation
:)它也会给你动画的外观,当你看到你看到的文件从一个文件夹复制到另一个文件夹:)这是一个例子。请根据您的实际需要进行修改。
Option Explicit
Private Declare Function SHFileOperation _
Lib "shell32.dll" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Const FO_COPY = &H2
Sub Sample()
Dim FilePath1 As String, FilePath2 As String
FilePath1 = "C:\cat"
FilePath2 = "C:\test\cat-1234"
'~~> Usage ~~> CopyFolder(From,To)
'~~> Example ~~> CopyFolder("C:\Temp\1","C:\Temp\2")
If CopyFolder(FilePath1, FilePath2) Then
MsgBox "Copied"
Else
MsgBox "Not copied"
End If
End Sub
Private Function CopyFolder(ByVal sFrom As String, _
ByVal sTo As String) As Boolean
Dim SHFileOp As SHFILEOPSTRUCT
On Error GoTo Whoa
CopyFolder = False
With SHFileOp
.wFunc = FO_COPY
.pFrom = sFrom
.pTo = sTo
End With
SHFileOperation SHFileOp
CopyFolder = True
Exit Function
Whoa:
MsgBox "Following error occurd while copying folder " & sFrom & vbCrLf & _
Err.Description, vbExclamation, "Error message"
End Function
发布于 2012-05-09 00:26:37
我认为没有批量移动这回事,即使你写了一个批处理程序,操作系统一次也只允许你移动一个文件。
https://stackoverflow.com/questions/10502484
复制相似问题