将所有文件和文件夹移动到Access VBA中的另一个文件夹

问题描述 投票:2回答:2

我想备份所有文件和文件夹。

例如:我有2个文件和一个位于D:\ Temp文件夹中的文件夹。

我在同一文件夹中还有一个名为“备份”的文件夹,即D:\ Temp \

所以我想将除备份文件夹以外的所有文件和文件夹移动到Access VBA中的备份文件夹。有可能吗?

这是我与Ron的代码相去甚远的方法。

我试图从一个文件夹移至临时文件夹,然后从该文件夹移至原始文件夹,如下所示。但是我出错了。

savepath = "d:\test\"
savepath2 = "d:\temp\"
savepath1 = "d:\test\Archieve\"

Dim FSO As Object
Dim FromPath As String
Dim ToPath As String

FromPath = savepath  '<< Change
ToPath = savepath2 '<< Change

If Right(FromPath, 1) = "\" Then
    FromPath = Left(FromPath, Len(FromPath) - 1)
End If

If Right(ToPath, 1) = "\" Then
    ToPath = Left(ToPath, Len(ToPath) - 1)
End If

Set FSO = CreateObject("scripting.filesystemobject")

If FSO.FolderExists(FromPath) = False Then
    MsgBox FromPath & " doesn't exist"
    Exit Sub
End If

FSO.moveFolder Source:=FromPath, Destination:=ToPath


If Not DirExists(savepath) Then
MkDir (savepath)
End If

If Not DirExists(savepath1) Then
MkDir (savepath1)
End If

FromPath = savepath2  '<< Change
ToPath = savepath1 '<< Change

If Right(FromPath, 1) = "\" Then
    FromPath = Left(FromPath, Len(FromPath) - 1)
End If

If Right(ToPath, 1) = "\" Then
    ToPath = Left(ToPath, Len(ToPath) - 1)
End If

Set FSO = CreateObject("scripting.filesystemobject")

If FSO.FolderExists(FromPath) = False Then
    MsgBox FromPath & " doesn't exist"
    Exit Sub
End If


FSO.moveFolder Source:=FromPath, Destination:=ToPath
vba access-vba
2个回答
0
投票

两个问题:(1)您无法确定哪一行代码有错误,这会使其他人花更多的时间查看您的所有代码;

((2)您的语法错误-更改

If Not DirExists(savepath) Then

成为:

If Not FSO.FolderExists(savepath) Then

0
投票

此外,Windows 10中也不允许移动。您必须复制文件和/或文件夹,然后将其删除。如果要删除文件夹,则需要确保文件夹为空,否则会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.