同步公司电脑上的软件.vbs

05~06年写的东西,放上来,做个备份吧,现在看看,那时候写的代码,还是很规范的。

要是现在,我肯定会用javascript 或 python来写。


Option Explicit
'------------------------------------------------------------
'描述:用于同步两个目录中的目录和文件
'------------------------------------------------------------
'Const strFolderA = "G:\Downloads\Soft"
'Const strFolderB = "K:\Soft"

Const strFolderB = "G:\Downloads\Soft"
Const strFolderA = "K:\Soft"

Dim fsoObj
Set fsoObj = CreateObject("Scripting.FileSystemObject")

If Not fsoObj.FolderExists(strFolderA) Then 
	MsgBox("源目录" & strFolderA & "不存在!")
Else
	If Not fsoObj.FolderExists(strFolderB) Then fsoObj.CreateFolder(strFolderB)
	Synchronize strFolderA, strFolderB
End If
Set fsoObj = Nothing
MsgBox("恭喜,同步成功!")

'------------------------------------------------------------
'描述:同步两个文件夹
'参数:
'	  sFolderA     目录名
'     sFolderB     目录名
'返回:无
'------------------------------------------------------------
Sub Synchronize(sFolderA, sFolderB)
	Dim fsoFolderA,fsoFolderB
	Dim fsoSubFolderA, fsoSubFolderB
	Dim itmFolderA,itmFolderB
	Dim fsoFileA,fsoFileB
	Dim itmFileA,itmFileB
	Dim blnFileInFolderB
	Dim blnFolderInFolderB

	Set fsoFolderA = fsoObj.GetFolder(sFolderA)
	Set fsoFolderB = fsoObj.GetFolder(sFolderB)
	Set fsoFileA = fsoFolderA.Files
	Set fsoFileB = fsoFolderB.Files

	For Each itmFileA In fsoFileA
		blnFileInFolderB = False
		For Each itmFileB In fsoFileB
			If itmFileA.Name = itmFileB.Name And _
			   itmFileA.Size = itmFileB.Size And _
			   itmFileA.DateLastModified = itmFileB.DateLastModified Then
			   blnFileInFolderB = True
			   Exit For
			End If
		Next

		If Not blnFileInFolderB Then
			itmFileA.Copy fsoFolderB.path & "\" & itmFileA.Name, True
		End If
	Next
	Set fsoFileA = Nothing
	Set fsoFileB = Nothing

	Set fsoSubFolderA = fsoFolderA.SubFolders
	Set fsoSubFolderB = fsoFolderB.SubFolders
	For Each itmFolderA In fsoSubFolderA
		blnFolderInFolderB = False
		For Each itmFolderB In fsoSubFolderB
			If itmFolderA.Name = itmFolderB.Name Then
				blnFolderInFolderB = True
				Exit For
			End If
		Next
		If Not blnFolderInFolderB Then
			fsoObj.CreateFolder(fsoFolderB.path & "\" & itmFolderA.Name)
		End If
		Synchronize itmFolderA.Path, Replace(itmFolderA.Path,strFolderA,strFolderB)
	Next

	Set fsoSubFolderA = Nothing
	Set fsoSubFolderB = Nothing
	Set fsoFolderA = Nothing
	Set fsoFolderB = Nothing
End Sub


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值