首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将文件批量移动到名称相似的文件夹?

如何将文件批量移动到名称相似的文件夹?
EN

Stack Overflow用户
提问于 2012-05-09 00:23:31
回答 2查看 317关注 0票数 0

我正在尝试将文件批量移动到具有新名称的新文件夹中。例如,我希望从以下位置移动所有文件:

C:\cat\

C:\dog\

至:

C:\test\cat-1234\

C:\test\dog-2477\

我想以这种方式移动大约400个文件夹。

目标文件夹将始终包含原始文件夹名称。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-09 00:41:49

可以,您可以将文件从一个文件夹复制到另一个文件夹。你可以使用API SHFileOperation :)它也会给你动画的外观,当你看到你看到的文件从一个文件夹复制到另一个文件夹:)这是一个例子。请根据您的实际需要进行修改。

代码语言:javascript
运行
复制
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
票数 1
EN

Stack Overflow用户

发布于 2012-05-09 00:26:37

我认为没有批量移动这回事,即使你写了一个批处理程序,操作系统一次也只允许你移动一个文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10502484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档