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 fsoObjSet fsoObj = CreateObject("Scripting.FileSystemObject")If Not fsoObj.FolderExists(strFolderA) Then MsgBox("來源目錄" & strFolderA & "不存在。")ElseIf Not fsoObj.FolderExists(strFolderB) Then fsoObj.CreateFolder(strFolderB)Synchronize strFolderA, strFolderBEnd IfSet fsoObj = NothingMsgBox("恭喜,同步成功。")'------------------------------------------------------------'描述:同步兩個檔案夾'參數:' sFolderA 目錄名' sFolderB 目錄名'返回:無'------------------------------------------------------------Sub Synchronize(sFolderA, sFolderB)Dim fsoFolderA,fsoFolderBDim fsoSubFolderA, fsoSubFolderBDim itmFolderA,itmFolderBDim fsoFileA,fsoFileBDim itmFileA,itmFileBDim blnFileInFolderBDim blnFolderInFolderBSet fsoFolderA = fsoObj.GetFolder(sFolderA)Set fsoFolderB = fsoObj.GetFolder(sFolderB)Set fsoFileA = fsoFolderA.FilesSet fsoFileB = fsoFolderB.FilesFor Each itmFileA In fsoFileAblnFileInFolderB = FalseFor Each itmFileB In fsoFileBIf itmFileA.Name = itmFileB.Name And _ itmFileA.Size = itmFileB.Size And _ itmFileA.DateLastModified = itmFileB.DateLastModified Then blnFileInFolderB = True Exit ForEnd IfNextIf Not blnFileInFolderB ThenitmFileA.Copy fsoFolderB.path & "\" & itmFileA.Name, TrueEnd IfNextSet fsoFileA = NothingSet fsoFileB = NothingSet fsoSubFolderA = fsoFolderA.SubFoldersSet fsoSubFolderB = fsoFolderB.SubFoldersFor Each itmFolderA In fsoSubFolderAblnFolderInFolderB = FalseFor Each itmFolderB In fsoSubFolderBIf itmFolderA.Name = itmFolderB.Name ThenblnFolderInFolderB = TrueExit ForEnd IfNextIf Not blnFolderInFolderB ThenfsoObj.CreateFolder(fsoFolderB.path & "\" & itmFolderA.Name)End IfSynchronize itmFolderA.Path, Replace(itmFolderA.Path,strFolderA,strFolderB)NextSet fsoSubFolderA = NothingSet fsoSubFolderB = NothingSet fsoFolderA = NothingSet fsoFolderB = NothingEnd Sub