VB复制文件夹中文件,以指定路径的文件夹中文件复制到另一个文件夹!
VB6.0使用CopyFile 方法来实现把一个或多个文件从一个地方复制到另一个地方。
CopyFile 方法。
描述,把一个或多个文件从一个地方复制到另一个地方。
语法:
说明
通配符只能用在 source 参数的最后一个路径部件。例如你可以在下面请况使用通配符:
FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"
但下面情况不能使用:
FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder"
如果 source 包含通配符或 destination以路径分隔符(\)为结尾,则认为 destination是一个已存在文件夹,在其中复制相匹配的文件。否则认为 destination
是一个要创建文件的名字。不论是那种情况,当复制一个文件时,可能发生三种事件。1. 如果 destination 不存在,source 得到复制。这是通常的情况。
2.如果 destination 是一个已存在的文件,则当 overwrite 值为 False 时发生一个错误,否则,source的复制文件将试图覆盖已存在文件。
3.如果 destination 是一个目录,发生一个错误
如果使用通配符的 source 不能和任何文件匹配,同样产生一个错误。CopyFile
方法停止在它遇到的第一个错误上。不要试图回卷或撤消错误发生前所做的任何改变。
VB里Shell相当于调用“运行框”,而不是命令提示符cmd。xcopy是cmd的命令。
要这样
Shell "cmd /c xcopy C:\aa D:\aa\ /e /c /y", 0
其中参数/c的意思是执行命令行的命令然后终止。更多参数选项可以通过
cmd /?
来查看。
还有问题请追问
(我的回答是建立在你xcopy的使用方法没错的基础上)
路径写出来就可以复制过去,如C:\aa,为什么我获取的路径用字符串表示写入上述形势中不行呢,如:y_path=C:\aa
md_path=D:\aa\
Shell "cmd /c xcopy y_path md_path/e /c /y", 0
这样为什么不行呢
你是刚学编程吗?"cmd /c xcopy y_path md_path/e /c /y"是一个字面值常量字符串,y_path和md_path不会作为变量代入的。此外前两句中字符串要加引号。应该这样
y_path = """C:\aa"""
md_path = """D:\aa\"""
Shell "cmd /c xcopy " & y_path & " " & md_path & " /e /c /y", 0
前两句中有三个引号的原因是:cmd命令中,带有空格的路径必须在引号中。而vb里为了在字符串里表示引号需要写两个引号。比如
""""""""
这实际上是一个由三个双引号组成的字符串。