iofs

iofs是一个基于原生fs模块封装的工具, 旨在提供更加方便实用一些常用的API方法(同步), API习惯参考了bash shell。

Usage no npm install needed!

<script type="module">
  import iofs from 'https://cdn.skypack.dev/iofs';
</script>

README

module info

iofs

iofs是一个基于原生fs模块封装的工具, 旨在提供更加方便实用一些常用的API方法(同步), API习惯参考了bash shell, 习惯用命令行的朋友, 可能会比较亲切。

API

属性

origin

返回原生的fs模块对象, 方便调用一些未封装的额外功能

APIs

所有API均支持在最后传入一个 debug<Boolean>参数(v1.3.2新增), 用于打印错误日志

.cat(file)

读取文件, 返回一个Buffer对象

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | file | <String> | 是 | 要读取的文件路径 |


.ls(path, recursive)

列出指定目录下的所有文件&目录, 不包括 '.' and '..'. 结果返回一个数组.

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String> | 是 | 要读取的目录 | | recursive | <String> | 否 | 是否递归读取 |


.echo(data, file, append, encode)

写数据到指定文件中. 如果指定文件不存在, 则自动生成.

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | data | <String> <Buffer> <Number> | 是 | 要写入的数据, 可以字符串、Buffer对象, 数字 | | file | <String> | 是 | 要写入的文件名, 不存在会自动创建, 如存在会覆盖 | | append | <Boolean> | 否 | 是否在文件后追加数据, 默认否, 即会整个文件替换 | | encode | <String> | 否 | 指定保存的编码, 默认utf8 |

var fs = require('iofs')

fs.echo('hello ', 'test.txt') // 如果test.txt存在, 则覆盖.
fs.echo('world', 'test.txt', true) // 不会覆盖, 只会追加到 test.txt中


.chmod(path, mode)

修改文件&目录的权限.

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要修改的文件&目录路径 | | mode | <Number> | 是 | 权限码 0o000 - 0o777 |


fs.chmod('test.txt', 0o777)


.chown(path, uid, gid)

修改文件&目录的归属。

v1.3.0 新增

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要修改的文件&目录路径 | | uid | <Number> | 是 | 用户ID | | gid | <Number> | 是 | 用户组ID |


.mv(origin, target)

移动文件&目录, 支持跨磁盘移动; 同时具备重命名功能。

v1.3.0 之后支持对目录进行操作

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | origin | <String>| 是 | 要移动或重命名的文件&目录 | | target | <String> | 是 | 目标文件名&目录名 |


.cp(origin, target)

复制文件&目录, 支持跨磁盘复制。

v1.3.0 之后支持对目录进行操作

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | origin | <String>| 是 | 要复制的文件&目录 | | target | <String> | 是 | 目标文件名&目录名 |


.rm(origin)

删除文件&目录

v1.3.0 之后取消第2个参数, 改为自动判断是否目录, 是否自动递归删除

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | origin | <String>| 是 | 要删除的文件&目录 |


fs.rm('./foo/test.txt')
fs.rm('./foo') // 整个目录删除


.stat(path)

返回文件&目录的状态信息, 如修改时间, 文件大小等

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要读取的目录&文件 |


.isdir(path)

判断指定目录是否为一个目录, 路径不存在或者不是目录都会返回 false.

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要读取的目录路径 |


.isfile(path)

判断指定目录是否为一个文件, 路径不存在或者不是文件都会返回 false

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要读取的文件 |


.mkdir(dir)

创建目录, 会自动创建上级目录(如不存在)

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | dir | <String>| 是 | 要创建的目录名 |


.exists(path)

判断文件&目录是否存在

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要读取的目录&文件 |


.is(path, mode)

判断文件&目录是否存在

| 参数 | 类型 | 是否必须 | 说明 | | :--: | :--: | :--: | -- | | path | <String>| 是 | 要读取的目录&文件 | | mode | <Number>| 否 | 如 r: 4, w: 2, rw: 6 |