File

文件

文件 对象允许你读写磁盘上的二进制数据(或从 Zip 文件、FTP 站点等)。虽然 Microsoft Scripting.FileSystemObject 对象允许你读写已经存在的文件,但是它仅支持文本,不支持二进制数据。你也可以使用 文件 对象修改文件的属性和时间戳。

你可以使用 FSUtil.OpenFile.Open 方法来获取一个 文件 对象。你可以通过以下三种模式之一打开文件:

  • 读取模式 - 你可以通过 方法从文件中读取数据。你无法写入文件或修改其属性。

  • 写入模式 - 你可以通过 方法向文件中写数据,还可以修改文件属性。你无法从其中读取数据。

  • 修改模式 - 你可以修改文件属性和时间戳,但无法读写数据。

属性名称返回类型描述

<default value>

字符串

返回文件的完整路径名。

error

整型

返回一个 Win32 错误代码,该代码指示上次操作是否成功或失败。如果上一个操作成功,这通常为 0

例如,如果你尝试使用 FSUtil.OpenFile 以读取模式打开一个不存在的文件,将返回一个有效的 文件 对象 - 但文件本身不会被打开。在继续使用 文件 对象之前,你可以检查 error 是否返回 0

path

对象:路径

路径 对象的形式返回文件的完整路径名。

size

返回一个 文件大小 对象,表示该文件的字节数。

tell

返回一个 文件大小 对象,表示该文件中的读写游标的当前位置,以字节为单位。

方法名称

参数

返回类型

描述

关闭

关闭底层文件句柄。此调用后,文件 对象仍然有效,但无法再读写数据。

如果你想使用 SetAttr 方法修改你创建的文件的属性,你可能希望首先调用 关闭,否则文件系统会根据需要在该文件上设置 A(压缩包)属性,无论你是否想设置它。

如果你想删除一个文件,你也可以手动关闭它,因为某些脚本语言(例如 JScript)具有惰式垃圾回收,否则可能会比你预期的长时间保持文件句柄打开。

<blob:target> <整型:size>

整型对象:Blob

从文件中读取数据。如果你提供一个 目标 Blob 作为第一个参数,数据将存储在该 Blob 中。否则,将自动创建一个 Blob。 可选的 size 参数指定要读取的字节数 - 默认行为是读取文件的剩余内容。 每次调用最多可以读取 1 GB (1073741824 字节),无论是否指定了大小。若要读取更大的文件,你必须多次调用 。 如果你提供一个 Blob,则返回值表示从文件中成功读取的字节数。如果没有提供 Blob,则返回值是自动创建的 Blob - 你可以使用它的 size 属性来发现读取的字节数。 如果 返回零(或一个空 Blob),你可以使用 error 属性来测试是否有任何问题,或文件是否只是没有更多数据。

搜索

<整型:delta> <字符串:method>

移动此文件中的读写游标。delta 参数指定要移动多少字节 - 如何解释这取决于可选的 method 参数:

b - 相对于文件开头移动 e - 相对于文件末尾移动 c - 相对于当前位置移动(这是默认方法)

返回值是表示新的游标位置的 文件大小 对象。

SetAttr

对象:文件属性 or <字符串:attributes>

布尔

修改此文件的属性。你可以传递一个表示要设置的属性的字符串,或一个 文件属性 对象。使用字符串时,有效属性为:

a - 压缩包 c - 压缩 e - 加密 h - 隐藏 n - 正常 r - 只读 s - 系统 p - 固定 i - 非内容索引

请注意,ce 属性不能同时设置。

当你传递一个字符串时,你还可以使用 +- 来打开或关闭某些属性,而不会影响其它属性。例如,SetAttr("-r") 将关闭只读属性。

如果操作成功,返回值为

SetTime

<日期:modify> <日期:create> <日期:access>

布尔

修改一个或多个文件的时间戳。createaccess 参数是可选的。如果你希望对时间戳不进行任何更改,请指定 0

时间戳指定为本地时间 - 使用 SetTimeUTC 将它们指定为 UTC。

成功时返回值为

SetTimeUTC

<日期:modify> <日期:create> <日期:access>

布尔

修改一个或多个文件的时间戳。createaccess 参数是可选的。如果你希望对时间戳不进行任何更改,请指定 0

时间戳指定为 UTC 时间 - 使用 SetTime 将它们指定为本地时间。

成功时返回值为

截断

布尔

在写游标当前位置截断文件。你可以将其与 搜索 方法结合使用,在磁盘上预分配文件空间,以获得更高的性能(即搜索到文件的最终大小,在此处截断,然后搜索回到开头并写入数据)。

如果操作成功,返回值为

<blob:source> or <字符串:source> <整型:from> <整型:size>

整型

将指定 Blob(或数组)或 字符串 中的数据写入文件。 默认情况下,将写入 Blob 的全部内容,但是你可以使用可选的 from 参数指定源字节偏移量,并使用 size 参数指定要写入的字节数。 每次调用最多可以写入 1 GB (1073741824 字节),无论是否指定了大小。若要写入更多数据,你必须多次调用 。 如果你提供的是 字符串 而不是 Blob,则该字符串将被自动编码为 UTF-8。 内容 返回值表示成功写入到文件中的字节数。如果 Write 返回零,可以使用 error 属性测试是否出错,或仅缺少数据要写入(例如,指定的 Blob 为空)。

最后更新于