多个对象 WebFile 多个对象 |
代表基于 Microsoft FrontPage 的站点中的文件。WebFile 对象是 WebFiles 集合的成员。WebFiles 集合代表指定的 WebFolder 对象中的所有文件。在 WebFiles 集合中,各 WebFile 对象的索引从零开始。WebFile 对象类似于基于目录的层次结构中的文件。FrontPage 提供了在 Web 服务器上创建多个 Web 对象的功能。任何 WebFolder 都可以代表一个 Web 站点,但并不是每个 WebFolder 都必须代表 Web 站点。
使用 WebFiles(index) 可以返回单个 WebFile 对象,其中 index 是站点文件项目的索引号。下列示例返回 WebFiles 集合中第一个站点文件项目的文件名。
ActiveWeb.RootFolder.Files(0).Name
使用 File 对象可以返回有关站点上的文件的信息。下列示例返回活动站点上每个 File 对象的 Name、Title 和 Url 属性。
注意 若要运行本程序,必须至少打开一个站点。
Private Sub GetWebFileInfo()
Dim myWeb As WebEx
Dim myFiles As WebFiles
Dim myFile As WebFile
Dim myFileName As String
Dim myTitle As String
Dim myUrl As String
Set myWeb = ActiveWeb
Set myFiles = myWeb.RootFolder.Files
With myWeb
For Each myFile In myFiles
myFileName = myFile.Name
myTitle = myFile.Title
myUrl = myFile.Url
Next
End With
End Sub
使用 IsOpen 属性可以检查文件当前是否在“网页”视图中打开。下列的示例返回指定 File 对象的 IsOpen 属性。请注意,本示例中使用 Edit 方法来打开文件。有关使用这些方法的详细信息,请参阅 Edit 方法。
注意 若要运行本程序,必须打开一个站点。
Private Sub CheckForOpenFile()
Dim myWeb As WebEx
Dim myFiles As WebFiles
Dim myFile As WebFile
Dim myFileToOpen As String
Dim myMessage As String
Dim myFileName As String
Set myWeb = ActiveWeb
Set myFiles = myWeb.RootFolder.Files
myFileToOpen = "index.htm"
myMessage = "This file is currently open."
With myWeb
For Each myFile In myFiles
myFileName = myFile.Name
If myFileName = myFileToOpen Then
If myFile.IsOpen = True Then
MsgBox (myMessage)
Exit Sub
Else
myFile.Edit fpPageViewNormal
Exit Sub
End If
End If
Next
End With
End Sub
使用 Checkin、Checkout 和 UndoCheckout 方法可以通过站点上的版本控制来管理文件资源。下列语句签出活动站点中的第一个文件。
注意 若要运行本语句,必须安装版本控制项目。
myFileCheckedOut = ActiveWeb.RootFolder.Files(1).Checkout
与 Microsoft Visual SourceSafe 中的文件管理功能类似,FrontPage 也提供了 UndoCheckout 方法,可以用来将文件恢复到其原始状态。下列语句将文件恢复到其原始状态。
myFileCheckedOut = ActiveWeb.RootFolder.Files(1).UndoCheckout
在试图签出某文件以查看该文件当前是否签出以及由谁签出之前,可以使用 CheckedoutBy 属性。下列语句返回签出文件的用户的登录别名,如果该文件当前尚未签出,则返回空值。
myWhoCheckedOutFile = ActiveWeb.RootFolder.Files(0).CheckedoutBy
使用 Properties 属性可以返回有关站点的信息,例如 Web 服务器的类型 (vti_webServertype) 或站点是否包含搜索组件 (vti_hassearchbot)。Properties 属性返回用于维护 meta 信息的键/值对的集合。如果站点包含搜索组件,则下列语句将 True 返回给变量 mySearchBot
。
mySearchBot = ActiveWeb.Properties.Item("vti_hassearchbot")
使用 MetaTags 属性可以返回有关文件的 HTML 代码中所包含的 meta 标记的信息。MetaTags 属性返回 File 对象的 meta 标记集合,例如文件生成器。下列示例返回站点中每个文件的文件名和 meta 标记。
注意 若要运行本程序,必须至少打开一个站点。
Private Sub GetMetaTags()
Dim myWeb As WebEx
Dim myMetaTag As Variant
Dim myFiles As WebFiles
Dim myFile As WebFile
Dim myMetaTags As MetaTags
Dim myFileName As String
Dim myMetaTagName As String
Set myWeb = ActiveWeb
Set myFiles = myWeb.RootFolder.Files
With myWeb
For Each myFile In myFiles
Set myMetaTags = myFile.MetaTags
For Each myMetaTag In myMetaTags
myFileName = myFile.Name
myMetaTagName = myMetaTag
Next
Next
End With
End Sub
使用 SharedBorders 属性可以返回当前 Web 页上的共享边框,或者设置新的共享边框。下列语句返回活动站点 Files 集合中第一个文件的顶端共享边框。
myTopBorder _
= ActiveWeb.RootFolder.Files(0).SharedBorders(fpBorderTop)
您也可以设置站点文件上的共享边框,如下列语句所示。
ActiveWeb.RootFolder.Files(0).SharedBorders(fpBorderTop) = True
使用 ThemeProperties 属性可以返回有关主题是使用鲜艳颜色还是动态图形的信息。下列示例返回所应用的主题的属性,如果指定对象尚未应用鲜艳颜色,则将鲜艳颜色添加到当前主题属性。
Private Sub CheckThemeProperties()
Dim myFile As WebFile
Set myFile = ActiveWeb.RootFolder.Files(0)
If myFile.ThemeProperties(fpThemeActiveGraphics) Then
myFile.ApplyTheme myFile.ThemeProperties(fpThemeName), myFile.ThemeProperties(fpThemePropertiesAll) + fpThemeVividColors
Else
myFile.ApplyTheme myFile.ThemeProperties(fpThemeName), myFile.ThemeProperties(fpThemePropertiesAll) + fpThemeActiveGraphics + fpThemeVividColors
End If
End Sub
使用 Copy、Delete、Edit、Move 或 Open 方法可以管理站点文件。Edit 和 Open 方法之间有一个细微的区别。使用 Edit 方法可以在 PageWindow 对象中打开和修改与 FrontPage 兼容的文件。使用 Open 方法,既可以打开与 FrontPage 兼容的文件,也可以在相关的编辑器内打开任何其他类型的文件,例如图像或文本文件。使用 Open 方法打开与 FrontPage 不兼容的文件类型时,FrontPage 不会返回文件对象。下列示例打开文件、删除文件和移动文件。
注意 若要运行本示例,必须拥有一个称为“C:\My Documents\My Webs\Rogue Cellars”(对于在 Microsoft Windows 上运行的服务器)或“C:\WINNT\Profiles\logon alias\Personal\My Webs\Rogue Cellars”(对于在 Windows NT 上运行的服务器)的站点。
Private Sub OpenFile()
Dim myWeb As WebEx
Dim myFile As WebFile
Set myWeb = Webs.Open("C:\My Documents\My Webs\Rogue Cellars")
myWeb.Activate
Set myFile = myWeb.RootFolder.Files("index.htm")
myFile.Open
End Sub
Private Sub DeleteFile()
Dim myWeb As WebEx
Dim myFile As WebFile
Set myWeb = ActiveWeb
Set myFile = myWeb.RootFolder.Files(0)
myFile.Delete
End Sub
Sub MoveFile()
Dim myWeb As WebEx
Dim myFile As WebFile
Set myWeb = ActiveWeb
Set myFile = myWeb.RootFolder.Files(0)
myFile.Move “New Filename”, True, True
End Sub