VB复制文件夹中文件,以指定路径的文件夹中文件复制到另一个文件夹!

不是把整个文件夹复制过去哦,是把里面所有文件复制到文件夹!用这个语句怎么不行呀Shell "xcopy C:\aa D:\aa\ /e /c /y", 0

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
    方法停止在它遇到的第一个错误上。不要试图回卷或撤消错误发生前所做的任何改变。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-25

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里为了在字符串里表示引号需要写两个引号。比如

""""""""

这实际上是一个由三个双引号组成的字符串。