ExcelVBA-FSO对象模型-Files属性(提取文件列表)
ExcelVBA-FSO对象模型-Folder对象-Files属性(提出文件列表)
FileSystemObjects对象模型包含了下面的对象和集合:esystemobject主对象,包含用来创建、删除和获得有关信息,以及用来操作驱动器、文件夹和文件的方法和属性
File对象,包含用来创建、删除或移动文件的方法和属性
Files集合,提供包含在文件夹内的所有文件的列表。
Folder对象,包含用来创建、删除或移动文件夹的方法和属性。
Folders集合,提供包含在文件夹内的所有文件夹的列表。
Folder 对象
提供对文件夹所有属性的访问权限。
Files 属性
返回一个Files集合, 该集合由指定文件夹中包含的所有**File** 对象组成, 包括具有隐藏和系统文件属性集的所有对象。
**File** 对象组成
**File** 对象属性
Files 集合包含有File的所有属性
====通过以上的学习====
我们可以先打开对话框===取得文件夹的路径===再把路径传给Folder对象===再收Files对象取得文件列表===由File对象读出文件路径来
【代码图片版本】
【运行取得文件夹中文件列表,不理会文件夹的】
【代码文字版本】
'打开对话框,选择文件夹,取得文件夹的路径
Sub t_File_List()
Dim arr() As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择文件夹"
If .Show = -1 Then
pth = .SelectedItems(1)
arr = Get_Folder_File_List(pth)
Else
MsgBox "已取消操作!"
Exit Sub
End If
End With
[a1].Resize(UBound(arr) 1, 1) = Application.Transpose(arr)
End Sub
'自定义函数,传入一个文件夹路径,返回一个文件路径列表数组
Function Get_Folder_File_List(folderspec)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.Files
m = 0
For Each f1 In fc
s = s & f1.Path & ","
Next
temp_arr = Split(s, ",")
Get_Folder_File_List = temp_arr
End Function
=====今天学习到此啦====