用VB指令碼複製資料夾並跳過重複檔案

2022-04-29 02:39:11 字數 1217 閱讀 4339

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

引數說明:

示例程式:

dim objfso 

set objfso = createobject("scripting.filesystemobject")

xcopy objfso, "d:\source", "d:\destination", false

VB選擇資料夾並取資料夾名

如下 引用microsoft shell controls and automation dim shella as new shell private sub command1 click 建立乙個按鈕物件 dim shellb as folder set shellb shella.browse...

php動態檢測資料夾更新並複製資料夾

先說下我的應用場景,幫助大家看是否對自己有用。所以我就想寫個指令碼,讓它自己檢測每次dist的變化 vue每次build,會先刪除舊的dist,然後重新生成 如果資料夾有變化,就自動把dist資料夾的內容複製乙份到hbuilder建立的專案資料夾下,以免去每次手動複製的麻煩。思路如下 1.檢測要複製...

手寫用程序池複製資料夾模型

importos importshutil importmultiprocessing importtime 檔案拷貝任務 defcopy work src dir,dst dir,file name 檢視程序物件 pid multiprocessing.current process pid pr...