Filer.dll 是 Microsoft Visual FoxPro 的早期版本(3.0b 版及更早的版本)中所附带的文件查找器桌面附件的组件版本。它提供了文件查找器的大多数常用功能,包括在文件中搜索文本字符串,以及打开多个文件进行编辑。
Filer.dll是支持自动服务的 COM 对象,所以可在 Visual FoxPro 或其他的自动服务程序(Automation Server)(例如 Microsoft Visual Basic 和 Microsoft Excel)中创建 Filer.dll 的实例。
Filer.dll 作为一个基本组件提供了文件和文本搜索引擎,但它不提供用户界面。例如,在不需任何用户输入情况下,可通过编程的方式创建文件查找器的实例以对文件进行搜索和操作查找器搜索。当然也可以创建用户界面,Visual FoxPro 表单 Filer.scx(和 Filer.sct)演示了如何创建 Filer.dll 的用户界面。详细内容,请参阅下面的“文件查找器界面”。
下面的命令将在 Visual FoxPro 中创建非可视文件查找器搜索引擎的一个实例,其他自动服务程序的语法规则与此类似。
oMyFiler = CREATEOBJECT('Filer.FileUtil')
在文件查找器对象实例化之后,就可利用文件查找器的属性来设置搜索文件的条件,然后用 Find( ) 方法程序进行文件搜索。Find 方法程序将创建一个文件集合对象,该对象具有一系列自己的属性,可用来获取符合搜索条件的文件的有关信息。还可以使用文件集合对象的方法程序打开或删除符合搜索条件的文件。
下面的 Visual FoxPro 示例演示了如何从 Visual FoxPro 中执行搜索及打开文本文件的操作。
***
实例化文件查找器对象oMyFiler = CREATEOBJECT('Filer.FileUtil')
oMyFiler.SearchPath = 'C:\Program Files\Microsoft Visual Studio\Vfp98' &&
默认目录oMyFiler.FileExpression = '*.TXT' &&
搜索文本文件oMyFiler.Find(0) &&
开始搜索并放弃上次搜索的结果FOR nFileCount = 1 TO oMyFiler.Files.Count
oMyFiler.Files.Item(nFileCount).Edit &&
打开文件ENDFOR
Filer.dll 和它所附带的文件只能用于 Visual FoxPro。禁止与其他运行时刻应用程序一起发布这些文件。
下表描述了与文件查找器相关的属性。
属性 | 数据类型 | 说明 |
SearchPath | 字符型 | 指定了搜索操作的起始文件夹。支持通用命名规则 (UNC)。默认文件夹为 C:\Program Files\Microsoft Visual Studio\Vfp98。 可读写。 |
FileExpression | 字符型 | 指定文件搜索掩码,可由用分号 (;) 分隔的多个掩码构成。例如,可用文件搜索掩码 *.scx; *.sct 来指定搜索所有扩展名为 .scx 和 .sct 的文件。 默认的搜索掩码是 *.*。 可读写。 |
SubFolder | 数值型 | 指定了是否从 SearchPath 属性所指定的文件夹作开始做递归搜索。 如果 SubFolder 属性的值为 0,则只在 SearchPath 属性所指定的文件夹中进行文件搜索。如果 SubFolder 属性的值为 1,则在 SearchPath 属性所指定的文件夹及其所有的子文件夹中进行文件搜索。请注意,文件查找器不对系统文件夹进行搜索。 默认值为 0。 可读写。 |
SearchText1 | 字符型 | 指定了需要在符合 FileExpression 属性所指定搜索掩码的文件中进行查找的文本字符串。 默认值为空字符串。 可读写。 |
SearchText2 | 字符型 | 指定了需要在符合 FileExpression 属性所指定搜索掩码的文件中进行查找的附加文本字符串。如果 SearchText1 属性的值为空字符串,则本属性无效。 默认值为空字符串。 可读写。 |
SearchText3 | 字符型 | 指定了需要在符合 FileExpression 属性所指定搜索掩码的文件中进行查找的附加文本字符串。如果 SearchText1 和 SearchText2 属性的值为空字符串,则本属性无效。 默认值为空字符串。 可读写。 |
IgnoreCase | 数值型 | 指定了在搜索由属性 SearchText1,SearchText2 和 SearchText3 所指定的字符串时是否区分大小写。如 IgnoreCase 属性的值为 0,则区分大小写,如 IgnoreCase 属性的值为 1,则不区分大小写。 默认值为 1。 可读写。 |
WholeWords | 数值型 | 指定了在搜索由属性 SearchText1,SearchText2 和 SearchText3 所指定的字符串时,是否只有找到了符合字符串的完整单词方视为搜索成功。如果 WholeWords 属性的值为 0,则不采用全字匹配,如果 WholeWords 属性的值为 1,则采用全字匹配。 默认值为 0。 可读写。 |
SearchAnd | 数值型 | 指定了是否只有在 SearchText1,SearchText2 和 SearchText3 属性所指定的字符串都得到了匹配时方视为搜索成功。如果 SearchAnd 属性的值为 0,则三个字符串中只要有任何一个得到了匹配,便可视为搜索成功,如果 SearchAnd 属性的值为 1,则只有当三个字符串都得到了匹配时方视为搜索成功。 默认值为 0。 可读写。 |
Editor | 字符型 | 指定了文件集合对象的 Open 方法程序用于打开文件的编辑器。当 IsHostedByFox 属性的值为 1 时,本属性无效。 默认值的编辑器为“写字板”。 可读写。 |
IsHostedByFox | 数值型 | 用于指示将 Filer.dll 实例化的客户应用程序。如果 IsHostedByFox 属性的值为 1,则表示客户应用程序是 Visual FoxPro,并使用 Visual FoxPro 的编辑器打开文件,如果 IsHostedByFox 属性的值为 0,则表示非 Visual FoxPro 的其他客户应用程序,并使用由 Editor 属性所指定的编辑器打开文件。 在Visual FoxPro 中默认值为 1。 可读写。 |
SortBy | 数值型 | 指定了对文件集合进行排序的依据。下表列出了 SortBy 属性的可取值及其对应的排序依据。 0不进行排序 1路径和文件名 2文件名 3文件的扩展名 4文件大小 5最后一次写文件的日期 6最后一次访问文件日期 7创建文件的日期 8文件属性 默认值为 1。 可读写。 |
SortDirection | 数值型 | 指定了对文件集合是按升序还是按降序进行排序。如果 SortDirection 属性的值为 0,则按升序排序,如果 SortDirection 属性的值为 1,则按降序排序。 默认值为 0。 可读写。 |
下表描述了文件查找器对象的方法程序。
方法程序 | 说明 |
Find(nValue) | 本方法程序执行文件搜索并创建文件集合。Find 方法程序包含一个数值,用于标识文件集合中的文件数目。
nValue 是数值型的参数,用于指定是否放弃前一次搜索所创建的文件集合。如果参数 nValue 的值为 0,则放弃前一次搜索所创建的文件集合,如参数 nValue 的值为 1,则将本次搜索所创建的文件集合追加到前一次搜索所创建的文件集合中。 请注意,参数 nValue 是必需的。 |
下表描述了与文件集合有关的对象引用。
对象 | 说明 |
Item(nValue) | 对文件集合中文件的对象引用。nvalue 是集合中文件的索引。nValue 的取值范围为从 1 到文件集合中的文件数目。可用下表中的 Count 属性来确定集合中的文件数目。 |
下表描述了文件集合的属性。
属性 | 数据类型 | 说明 |
Count | 数值型 | 存放有文件集合中的文件数目。 只读。 |
Name | 字符型 | 不包括路径的文件名。 只读。 |
Size | 数值型 | 以字节表示的文件大小。 只读。 |
SizeHigh | 数值型 | 如果文件大小大于 4G 字节,则将文件大小的高位的 4 个字节保存在 SizeHigh 属性中。 只读。 |
Attr | 数值型 | 文件的 Windows 文件属性。下列为典型文件属性所对应的数值。 0无设定的属性 1只读 2隐藏 4系统 32存档 Attr 属性的值可以是几个文件属性之和。例如,若 Attr 属性的值为 7 (1+2+4),则表示该文件为只读、隐藏的系统文件。 有关影响 Attr 属性返回值的其他文件属性的详细内容,请参阅 Microsoft Developer’s Network library 中有关 GetFileAttributes 函数的说明。 可读写。 |
DateTime | 数值型 | 创建文件时由 Windows 为其指定的时间戳。 时间戳的整数部分为从 1899 年 12 月 30 日起到文件创建日的天数,余下的部分是用小数方式表示的文件创建日所剩下的时间,用于确定文件的创建时间。文件查找器表单 Filer.scx 中包含了用户自定义的方法程序 GetTime,该方法程序演示了如何根据 DateTime 属性确定文件的创建日期和时间。 只读。 |
LastAccessTime | 数值型 | 最后一次访问文件时由 Windows 指定的时间戳。 只读。 |
LastWriteTime | 数值型 | 最后一次写文件时由 Windows 指定的时间戳。 只读。 |
AlternateName | 字符型 | 如果文件名的长度大于 MS-DOS?/SUP> 的“8.3 字符命名规则”所规定的 8 个字符,则 AlternateName 属性保存了对应的短文件名。 只读。 |
Path | 字符型 | 文件的完整路径。 只读。 |
下表描述了文件集合的方法程序。
方法程序 | 说明 |
Edit | 打开指定文件用于编辑。如果 IsHostedByFox 属性的值为 1(Visual FoxPro内的默认值),则在 Visual FoxPro 编辑器中打开文件。如果 IsHostedByFox 属性的值为 0,则用 Editor 属性所指定的编辑器(默认时为“写字板”)打开文件。 |
Delete | 从磁盘上删除指定文件。该文件将不被置于“回收站”中。 |
示例表单 Filer.scx 演示了如何在 Visual FoxPro 中为 Filer.dll 创建用户界面。用如下的 DO FORM 命令运行文件查找器表单:
DO FORM (HOME(1) + 'Tools\Filer\Filer.scx')
在运行文件查找器表单时,会在 Visual FoxPro 的“工具”菜单中添加一条“文件查找器”菜单项,它在 Visual FoxPro 的当前工作期一直有效。选择“工具”菜单中的“文件查找器”菜单项可再次运行文件查找器。
执行以下命令,可打开文件查找器表单以查看其代码或修改表单:
MODIFY FORM (HOME(1) + 'Tools\Filer\Filer.scx')