VB如何实现移动整个文件夹?(包括当中的子文件夹)

求详细,刚学VB,遍历什么的都不会。如图,就是想做个把游戏存档直接移动到当前程序目录下,但是我怎么移动,都有问题,比如子文件夹不移动。

第1个回答  2017-01-11

最简单的方法是调用FSO组件:

Private Sub Command1_Click()
Dim fso As Object, folder As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(Text1.Text) Then
    Set folder = fso.GetFolder(Text1.Text)
    If fso.FolderExists(Text2.Text) Then
        folder.Move Text2.Text & "\" & folder.Name
        MsgBox "移动完毕!"
    Else
        MsgBox "目标文件夹未找到!"
    End If
    Set folder = Nothing
Else
    MsgBox "源文件夹未找到!"
End If
Set fso = Nothing
End Sub

第2个回答  2017-01-11
Option Explicit
Private Type SHFILEOPSTRUCT
        hwnd As Long
        wFunc As Long       '对文件的操作指令
        pFrom As String     '源文件或路径
        pTo As String       '目的文件或路径
        fFlags As Integer   '操作标志
        fAnyOperationsAborted As Long
        hNameMappings As Long
        lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation Lib _
        "shell32" _
        (lpFileOp As SHFILEOPSTRUCT) As Long
Const FO_COPY = &H2
Const FO_DELETE = &H3
Const FO_MOVE = &H1
Const FO_RENAME = &H4
Const FOF_ALLOWUNDO = &H40
Const FOF_NOCONFIRMATION = &H10

Private Sub Command1_Click()'复制
    Dim xFile As SHFILEOPSTRUCT
    xFile.pFrom = Text1 + "\*.*"   '源文件加
    xFile.pTo = Text2              '目标文件夹
    xFile.fFlags = FOF_NOCONFIRMATION
    xFile.wFunc = FO_COPY
    xFile.hwnd = Me.hwnd
    If SHFileOperation(xFile) Then
    End If
End Sub

上面是可以复制文件夹 然后就把原来的文件夹删了就可以

追问

这个是不包含删除的代码对吧

追答

dui ,删除OK的把?

追问

其实也不会,但是我不需要此功能😊

第3个回答  2017-01-11

我用api做了一个文件操作的例子你可以直接拿去用

追问

太好用了。。。

就是我全看不懂。。在你的基础上加吧

本回答被提问者采纳