Node -- fs(基本类)

896 阅读3分钟

一、fs.Dirent 类

当使用 `withFileTypes` 选项设置为 `true` 调用 `fs.readdir()` 或 `fs.readdirSync()` 时,生成的数组将填充 `fs.Dirent` 对象,而不是字符串或 `Buffer`

  • dirent.isBlockDevice():块设备
  • dirent.isCharacterDevice():字符设备
  • dirent.isDirectory():文件系统目录
  • dirent.isFIFO():先进先出(FIFO)管道
  • dirent.isFile():常规文件
  • dirent.isSocket():套接字
  • dirent.isSymbolicLink():符号链接
  • dirent.name:文件名

二、fs.FSWatcher 类

fs.watch()返回的对象是该类型。

事件

  • change(eventType,filename):当一个被监视的目录或文件有变化时触发 eventTyperenamechange
  • close:当监视器停止监视更改时触发
  • error:当发生错误时触发。

方法

  • watcher.close():停止监听 fs.FSWatcher 的变化。

三、fs.Stats 类

从 fs.stat()fs.lstat()和 fs.fstat()及其同步版本返回的对象都是该类型。

Stats {
    dev: 2114,
    ino: 48064969,
    mode: 33188,
    nlink: 1,
    uid: 85,
    gid: 100,
    rdev: 0,
    size: 527,
    blksize: 4096,
    blocks: 8,
    atimeMs: 1318289051000.1,
    mtimeMs: 1318289051000.1,
    ctimeMs: 1318289051000.1,
    birthtimeMs: 1318289051000.1,
    atime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    mtime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    ctime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    birthtime: 'Mon, 10 Oct 2011 23: 24: 11 GMT'
}

方法

  • isBlockDevice():块设备
  • isCharacterDevice():字符设备
  • isDirectory():文件系统目录
  • isFIFO():先进先出(FIFO)管道
  • isFile():常规文件
  • isSocket():套接字
  • isSymbolicLink():符号链接

属性

  • dev:设备的数字标识符
  • ino:文件系统特定的文件索引节点编号
  • mode:描述文件类型和模式的位字段
  • nlink:文件存在的硬链接数
  • uid:拥有该文件(POSIX)的用户的数字型用户标识符
  • gid:拥有该文件(POSIX)的群组的数字型群组标识符
  • rdev:如果文件被视为特殊文件,则此值为数字型设备标识符
  • size:文件的大小(以字节为单位)
  • blksize:用于 I/O 操作的文件系统块的大小
  • blocks:为此文件分配的块数
  • atimeMs:访问此文件的时间戳
  • mtimeMs:修改此文件的时间戳
  • ctimeMs:更改文件状态的时间戳
  • birthtimeMs:创建时间的时间戳
  • atime:访问时间" - 文件数据最近被访问的时间。
  • mtime:修改时间" - 文件数据最近被修改的时间。
  • ctime:变化时间" - 文件状态最近被改变的时间(修改索引节点数据)。
  • birthtime:创建时间" - 文件创建的时间。

四、fs.ReadStream 类

  • 成功调用fs.createReadStream() 将返回一个新的fs.ReadStream 对象。

事件

  • close:当 ReadStream 底层的文件描述符被关闭时触发。
  • open(fd):当 ReadStream 的文件被打开时触发
  • readyopen 事件之后立即触发。

属性

  • readStream.bytesRead:已读取的字节数。

  • readStream.path:流正在读取的文件的路径

  • readStream.pending:如果底层的文件还未被打开(即在触发 ready 事件之前),则此属性为 true。

五、fs.WriteStream 类

WriteStream 一个可写流。

事件

  • close:当 WriteStream 的底层文件描述符已关闭时触发
  • open(fd):当 WriteStream 的文件打开时触发
  • readyopen 事件之后立即触发。

属性

  • readStream.bytesRead:到目前为止写入的字节数

  • readStream.path:流正在写入的文件的路径

  • readStream.pending:如果底层的文件还未被打开(即在触发 ready 事件之前),则此属性为 true。