VB怎样将文件夹复制到指定位置,注意是文件夹。

VB怎样将文件夹复制到指定位置,注意是文件夹。,第1张

VB复制文件使用CopyFolder方法实现。

CopyFolder 方法

描述

从一个地方递归地复制一个文件夹到另一个地方。

语法

object.CopyFolder source, destination[,

overwrite]

实现代码中的source路径不能有错,否则VB报错。

将C盘下的Program Flles目录夹复制到D盘Program Flles目录夹的实际代码如下:

Private Sub Command1_Click()

CreateObject("scripting.filesystemobject").copyfolder "c:\Program Files", "D:\Program Files"

End Sub

用CopyFolder 方法可以复制文件夹。

语法

object.CopyFolder source, destination[, overwrite]

其中,object只能是FileSystemObject对象(见后面示例).

CopyFolder 方法语法有如下几部分:

Object 必需的。始终为一个 FileSystemObject 的名字。

source 必需的。指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。

destination 必需的。指明 source 中被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。

overwrite 选项的。Boolean 值,它表示已存在的文件夹是否被覆盖。如果为 True,文件被覆盖。如果为 False,文件不被覆盖。缺省值为 True。

说明

通配符仅可用于 source 参数的最后一个路径部件。例如你可以在下面情况使用它:

FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"

但不能在下面情况使用它:

FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"

如果 source 包含通配符或 destination 以路径分隔符(\)为结尾,则认为 destination 是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。否则认为 destination 是一个要创建的文件夹的名字。不论何种情况,当复制一个文件夹时,可能发生四种事件。

如果 destination 不存在,source 文件夹和它所有的内容得到复制。这是通常的情况。

如果 destination 是一个已存在的文件,则发生一个错误。

如果 destination 是一个目录,它将尝试复制文件夹和它所有的内容。如果一个包含在 source 的文件已在 destination 中存在,当 overwrite 为 False 时发生一个错误,否则它将尝试覆盖这个文件。

如果 destination 是一个只读目录,当尝试去复制一个已存在的只读文件到此目录并且 overwrite为 False 时,则发生一个错误。

如果 source 使用的通配符不能和任何文件夹匹配,也发生一个错误。

CopyFolder 方法停止在它遇到的第一个错误上。不要尝试回卷错误发生前所做的任何改变。

示例:

Set fs = CreateObject("Scripting.FileSystemObject")

fs.CopyFolder "C:\Downloads\", "D:\"

FileSystemObject对象除了CopyFolder方法,还有其它很多,如BuildPath、CopyFile、CreatFolder等等,详见msdn帮助

这么简单的东西,你就不用花冤枉钱了,我免费给你:

Private Sub Form_Load()

Me.OLEDropMode = 1

End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim ff, fso As Object, fn As Integer, dn As Integer

Set fso = CreateObject("scripting.filesystemobject")

For Each ff In Data.Files

    If fso.fileexists(ff) Then

        fso.copyfile ff, "d:\tmp\" & fso.getfilename(ff) & "." & Format(Now, "yyyymmddhhnnss"), True

        fn = fn + 1

    Else

        fso.copyfolder ff, "d:\tmp\" & fso.getfilename(ff) & "." & Format(Now, "yyyymmddhhnnss"), True

        dn = dn + 1

    End If

Next

Set fso = Nothing

MsgBox "共复制" & fn & "个文件," & dn & "个文件夹"

End Sub

以上代码没有用到任何控件,也不需进行任何设置,直接把代码复制到窗体的代码区,编译为EXE文件即可。运行后把文件或文件夹拖到窗体中即可,可以多个文件同时拖,也可以文件和文件夹混合拖。

文件的保存位置是d:\tmp\,你可以自己改。

时间后缀我是直接加在文件或文件夹的后面的,如果不符要求你可以自己改,让我改也行。

另外这是VB6的代码,如果你要的不是这个版本的,那就对不起了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11524026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存