判斷文件是否存在這個(gè)方法我們會(huì)經(jīng)常遇到,例如: 我們需要判斷一個(gè)文件是否存在,如果存在則更新它,如果不存在則新建一個(gè)文件。 我們需要判斷一個(gè)文件是否存在,如果存在則備份他,然后削除(可以用剪切方法),如果不存在則報(bào)錯(cuò)。 這樣的例子太多,今天我們來分享下,怎樣來判斷文件是否存在? 方法一: 用VBA自帶的Dir()判斷 【Dir函數(shù)】 返回一個(gè)字符串 String,用以表示一個(gè)文件名、目錄名或文件夾名稱,它必須與指定的模式或文件屬性、或磁盤卷標(biāo)相匹配。 【語法】 Dir[(pathname[, attributes])] pathname:可選參數(shù)。用來指定文件名的字符串表達(dá)式,可能包含目錄或文件夾、以及驅(qū)動(dòng)器。如果沒有找到 pathname,則會(huì)返回零長(zhǎng)度字符串 ('')。 attributes:可選參數(shù)。常數(shù)或數(shù)值表達(dá)式,其總和用來指定文件屬性。如果省略,則會(huì)返回匹配 pathname 但不包含屬性的文件。 attributes參數(shù)說明: 在 Microsoft Windows目錄支持使用多個(gè)字符 () 和單個(gè)字符 ( **?* ) 通配符指定多個(gè)文件。 【例】: 我們通過 Dir('D:\vba\abc.txt',16) 來判斷 abc.txt 是否存在, 那么 Dir('D:\vba\abc.txt',16) 返回的是什么? 上面的定義提到了 那么 Dir('D:\vba\abc.txt',16) 返回的應(yīng)該是 abc.txt 。 通過Dir函數(shù),我們不僅能判斷文件是否存在,并且所得到的結(jié)果就是文件名,我們可以獲取文件的名字,因?yàn)橹С质褂枚鄠€(gè)字符 (*) 和單個(gè)字符 (?) 通配符,我們可以輕松搭配遍歷,來進(jìn)行模糊匹配,例如,我們可以遍歷文件夾下所有的txt,xls等等文件,可以遍歷所有的某某時(shí)刻表文件等等。 知識(shí)速鏈:《VBA基礎(chǔ)入門(23)初識(shí)FSO;文件,文件夾的遍歷》 方法二: 用Windows的文件系統(tǒng)函數(shù)進(jìn)行判斷 通過 FileSystemObject 的 FileExists 方法(FolderExists 方法)來進(jìn)行判斷 【FileExists 方法】 語法:object.FileExists(filespec) 作用:如果指定的文件存在,返回 True,若不存在,則返回 False。 【FolderExists 方法】 語法:object.FolderExists(folderspec) 作用:如果指定的文件夾存在返回 True,不存在返回 False。 【例】: 知識(shí)速鏈:《VBA基礎(chǔ)入門(24)FSO CopyFile》 FileExists,F(xiàn)olderExists同之前分享的CopyFile,CopyFolder一樣,都是FileSystemObject對(duì)象模型的方法。 PS:還在為工作效率上不來而煩惱嘛,快來加入我們吧。 |
|