首页 > 其他 > 详细

用VB脚本复制文件夹并跳过重复文件

时间:2019-11-26 12:42:54      阅读:140      评论:0      收藏:0      [点我收藏+]

VB中可通过 scripting.filesystemobject 对象操作文件,其中复制文件或文件夹的函数参数可选覆盖或不覆盖。选择覆盖时,如果目标路径存在同名文件或文件夹,则替换掉已存在的文件。而选择不覆盖时,当目标路径存在同名文件或文件夹,程序会抛出异常。因此 scripting.filesystemobject 对象内没有函数可以实现遇到已存在文件跳过的功能。

下面通过 scripting.filesystemobject 对象来自己实现遇到已存在文件跳过的复制函数。

Sub XCopy(objfso, source, destination, overwrite)
	Dim objfol, objf, d_path
	‘Set objfso = CreateObject("scripting.filesystemobject")
	Set objfol = objfso.GetFolder(source)
	‘创建目标文件夹
	If Not objfso.FolderExists(destination) Then
		objfso.CreateFolder destination
	End If
	‘复制源文件夹下所有文件
	For Each objf In objfol.Files
		‘生成目标文件路径
		d_path = objfso.BuildPath(destination, objf.Name)
		‘如果要求覆盖或文件不存在则复制
		If overwrite Or Not objfso.FileExists(d_path) Then
			objf.Copy d_path
		End If	
	Next
	‘递归遍历子目录
	For Each objf In objfol.SubFolders
		d_path = objfso.BuildPath(destination, objf.Name)
		XCopy objfso, objf.Path, d_path, overwrite
	Next
End Sub

 

参数说明:

  • objfso:该参数为 scripting.filesystemobject 对象。
  • source:需要复制的文件夹路径。
  • destination:目的文件夹路径。
  • overwrite:该参数为True则覆盖同名文件,为False则跳过同名文件。

示例程序:

Dim objfso 
Set objfso = CreateObject("scripting.filesystemobject")
XCopy objfso, "D:\source", "D:\destination", False

  

用VB脚本复制文件夹并跳过重复文件

原文:https://www.cnblogs.com/yada/p/11934419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!