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 - 非内容索引 请注意,c 和 e 属性不能同时设置。 当你传递一个字符串时,你还可以使用 + 和 - 来打开或关闭某些属性,而不会影响其它属性。例如,SetAttr("-r") 将关闭只读属性。 如果操作成功,返回值为 真。 |
SetTime | <日期:modify> <日期:create> <日期:access> | 布尔 | 修改一个或多个文件的时间戳。create 和 access 参数是可选的。如果你希望对时间戳不进行任何更改,请指定 0。 时间戳指定为本地时间 - 使用 SetTimeUTC 将它们指定为 UTC。 成功时返回值为 真。 |
SetTimeUTC | <日期:modify> <日期:create> <日期:access> | 布尔 | 修改一个或多个文件的时间戳。create 和 access 参数是可选的。如果你希望对时间戳不进行任何更改,请指定 0。 时间戳指定为 UTC 时间 - 使用 SetTime 将它们指定为本地时间。 成功时返回值为 真。 |
截断 | 无 | 布尔 | 在写游标当前位置截断文件。你可以将其与 搜索 方法结合使用,在磁盘上预分配文件空间,以获得更高的性能(即搜索到文件的最终大小,在此处截断,然后搜索回到开头并写入数据)。 如果操作成功,返回值为 真。 |
写 | <blob:source> or <字符串:source> <整型:from> <整型:size> | 整型 | 将指定 Blob(或数组)或 字符串 中的数据写入文件。 默认情况下,将写入 Blob 的全部内容,但是你可以使用可选的 from 参数指定源字节偏移量,并使用 size 参数指定要写入的字节数。 每次调用最多可以写入 1 GB (1073741824 字节),无论是否指定了大小。若要写入更多数据,你必须多次调用 写。 如果你提供的是 字符串 而不是 Blob,则该字符串将被自动编码为 UTF-8。 内容 返回值表示成功写入到文件中的字节数。如果 Write 返回零,可以使用 error 属性测试是否出错,或仅缺少数据要写入(例如,指定的 Blob 为空)。 |
最后更新于