我們如何要做多文件處理,第一步就是需要獲取到全部的文件,然後才能談合併或者其他操作!
今天我們就是介紹如何獲取全部文件名稱!
為了大家方便調用,我們通過FSO對象來處理!
oFso.GetFolder(basePath).SubFolders我們想要的只是每個文件夾對象的全路徑,當然你也可以獲取文件夾名稱如果你注意一下上圖,你會發現他有一個Files屬性,下面我們想要獲取文件信息就要使用到!files是文件夾對象的一個屬性,通過他可以獲得文件夾下的全部文件對象,就好像大家看到的一樣,文件有很多屬性,比如創建時間、修改時間、大小等
有了上面的鋪墊,我們結合遞歸就可以寫一個列出全部文件名稱的程序了!
為了方便大家調用,我們成型的代碼還是使用後期綁定,這樣就不需要引用對應的dll文件庫了!
封裝好後一句代碼即可調用獲取文件名稱,當然想獲取路徑+名稱 的使用Path前面鋪墊已講,其他屬性,大小什麼的也可以獲取!Const basePath As String = "D:\OFFICE模板\Excel\"
如果你是要供其他過程調用,建議把數據封裝到一個全局數組中!這裡就不再展開了!遞歸什麼?大概就是「從前有座山,山裡……」,你們都熟悉吧!
Dim n As Long '記錄文件數目
'公眾號:Excel辦公實戰
'--
Sub getFiles(spath As String)
Dim oFso As Object, ofile As Object, fd As Object
Dim baseFolder As Object
'創建Fso對象-後期綁定
Set oFso = CreateObject("Scripting.FileSystemObject")
'獲取文件夾對象
Set baseFolder = oFso.GetFolder(spath)
'遍歷對應的文件夾中的全部文件夾
For Each ofile In baseFolder.Files
n = n + 1
Cells(n, 1) = ofile.Name '文件名稱寫入A列
Next
'處理所有文件夾
For Each fd In baseFolder.SubFolders
'遞歸調用
getFiles fd.Path
Next
End Sub
'一句代碼調用
Sub 獲取全部文件名稱()
getFiles basePath
End Sub