ScopeFolder 对象

优质
小牛编辑
133浏览
2023-12-01

对应于一个可搜索的文件夹。ScopeFolder 对象将用于 SearchFolders 集合。SearchFolders 集合定义使用 FileSearch 对象时搜索的文件夹。如果要搜索指定文件夹,可以使用 SearchScope 对象和 ScopeFolders 集合的属性和方法检索 ScopeFolder 对象并添加到 SearchFolders 集合。

使用 ScopeFolder 对象

使用 SearchScope 对象的 ScopeFolder 属性返回搜索范围的根 ScopeFolder 对象,例如:

Set sf = Application.FileSearch.SearchScopes.Item(1).ScopeFolder

使用 ScopeFolders 集合的 Item 方法返回根 ScopeFolder 对象的子文件夹,例如:

Set sf = Application.FileSearch.SearchScopes.Item(1).ScopeFolder.ScopeFolders.Item(1)

使用 SearchFolders 集合的 Item 方法返回下次调用 FileSearch 对象的 Execute 方法时将要搜索的文件夹,例如:

Set sf = Application.FileSearch.SearchFolders.Item(1)

每个 ScopeFolder 对象中具有一个包含父 ScopeFolder 对象的子文件夹的 ScopeFolders 集合。在 ScopeFolders 集合中循环并返回所有较低级别的 ScopeFolder 对象,可以浏览搜索范围(例如,所有驱动器)的整个文件夹结构。没有子文件夹的 ScopeFolder 对象包含一个空 ScopeFolders 集合。

有关演示如何在搜索范围的所有 ScopeFolder 对象中循环的示例,请参阅 SearchFolders 集合的主题。

可以使用 SearchFolders 集合的 Add 方法向 SearchFolders 集合中添加 ScopeFolder 对象,但是使用要添加的 ScopeFolder 对象的 AddToSearchFolders 方法更为简便,因为对于所有搜索只有一个 SearchFolders 集合。

有关演示如何向 SearchFolders 集合中添加 ScopeFolder 对象的示例,请参阅 SearchFolders 集合的主题。

本示例显示“我的电脑”中每个目录的根路径。为了检索该信息,本示例首先获得“我的电脑”根目录下的 ScopeFolder 对象。该 ScopeFolder 的路径将总是 "*"。对于所有 ScopeFolder 对象,根对象包含一个 ScopeFolders 集合。本示例在该 ScopeFolders 集合中循环,并显示其中每个 ScopeFolder 对象的路径。这些 ScopeFolder 对象的路径将为 "A:\"、"C:\" 等等。

Sub DisplayRootScopeFolders()

    'Declare variables that reference a
    'SearchScope and a ScopeFolder object.
    Dim ss As SearchScope
    Dim sf As ScopeFolder

    'Use a With...End With block to reference the
    'FileSearch object.
    With Application.FileSearch

        'Loop through the SearchScopes collection
        'and display all of the root ScopeFolders collections in
        'the My Computer scope.
        For Each ss In .SearchScopes
            Select Case ss.Type
                Case msoSearchInMyComputer

                    'Loop through each ScopeFolder object in
                    'the ScopeFolders collection of the
                    'SearchScope object and display the path.
                    For Each sf In ss.ScopeFolder.ScopeFolders
                        MsgBox "ScopeFolder object's path: " & sf.Path
                    Next sf

                Case Else
            End Select
        Next
    End With
End Sub
多个对象
ScopeFolder
ScopeFolders