文件系統對象FSO的全稱是File System Object,將一系列操作文件和文件夾的動作通過調用對象本身的屬性直接實現。其包含了Drive、Folder、File、FileSystemObject和TextStream五個對象,其中Drive用來收集驅動器的信息,如可用磁碟空間或驅動器的類型;Folder用於創建、刪除或移動文件夾,同時可以進行向系統查詢文件夾的路徑等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是針對磁碟上的文件進行的。
對象使用方式:前期綁定:需要在「工程」中「引用」,然後在「引用」對話框中選中「Microsoft Scripting Runtime」前的複選框,然後單擊「確定」。將一個變數聲明為FSO對象類型:Dim fso As New FileSystemObject。後期綁定:通過CreateObject方法創建一個FSO 對象:Set fso = CreateObject(「
Scripting.FileSystemObject”)。
1、FSO對象的GetFolder方法,GetFolder方法返回Folder對象。其語法為:FileSysObj.GetFolder (FolderPath)。參數FolderPath必需,指定所需文件夾的路徑,String類型,可以為相對路徑或絕對路徑。GetFolder方法要求FolderPath是一個有效文件夾的路徑,可以先調用FolderExists方法來檢驗FolderPath是否存在。
2、FolderExists方法,判斷指定的文件夾是否存在,若存在則返回True。語法:FileSysObj.FolderExists(FolderSpec);參數FolderSpec指文件夾的完整路徑,String類型,不能包含通配符。語句示例:
Sub IfFolderExists( )
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
MsgBox fs.FolderExists("D:\Program Files")
End SubFSO對象使用示例:一、遍歷某個文件夾下 一層子文件夾
Sub aaa()
Set fso = CreateObject("scripting.filesystemobject")
pa=range(「d2」) 'D2單元格中存有一個文件夾路徑
Set ss = fso.getfolder(pa) ' ss 為 pa這個文件夾的「文件系統對象」
a = 1
For Each fd In ss.subfolders 'ss的子文件夾集合(pa路徑下的一層子文件夾)
Cells(a, 「A」) = fd.Name '子文件夾名
Cells(a, 「B」) = fd '子文件夾全路徑+名稱
a = a + 1
Next fd
End Sub代碼作用:子文件夾名稱放在A列,子文件夾全路徑+名稱放在B列。這裡可以看出與Dir區別,Dir不能單獨取子文件夾名。還有fd.Name 的用法。
二、遍歷當前文件夾內的文件
Sub aaa()
Set fso = CreateObject("scripting.filesystemobject")
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "請選擇一個文件夾"
If .Show = -1 Then '彈出選擇"文件夾"的窗口
fd = .SelectedItems(1)
Else
MsgBox "未選擇文件,程序中止"
Exit Sub
End If
End With
Set ss = fso.getfolder(fd)
a = 1
For Each f In ss.Files 'ss的文件集合(fd路徑下的)
Cells(a, 1) = f.Name '文件名
Cells(a, 2) = f '全路徑+文件名
a = a + 1
Next f
End Sub代碼作用:提取文件名稱,並放在A列;文件全路徑+名稱放在B列。ss.Files 只是fd 路徑下的本層文件夾內的文件。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/212912.html
微信掃一掃
支付寶掃一掃