美文网首页
Node Native (6) fs

Node Native (6) fs

作者: 小懒豆 | 来源:发表于2018-06-05 10:58 被阅读9次

    异步方法的最后一个参数都是一个回调函数。 传给回调函数的参数取决于具体方法,但回调函数的第一个参数都会保留给异常。 如果操作成功完成,则第一个参数会是 null 或 undefined。

    fs模块概述

    一、fs.FSWatcher 类

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

    事件

    • change:当一个被监视的目录或文件有变化时触发

    • error:当发生错误时触发。

    方法

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

    二、fs.ReadStream 类

    ReadStream 是一个可读流

    事件

    • close:当 ReadStream 底层的文件描述符被关闭时触发。

    • open:当 ReadStream 的文件被打开时触发。事件回调函数第一个参数为fd

    • error:当发生错误时触发。

    属性

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

    • readStream.path:流正在读取的文件的路径,指定在 fs.createReadStream() 的第一个参数。

    三、fs.WriteStream 类

    WriteStream 一个可写流。

    事件

    • close:当 WriteStream 底层的文件描述符被关闭时触发。

    • open:当 WriteStream 的文件被打开时触发。事件回调函数第一个参数为fd

    属性

    • writeStream.bytesWritten:已写入的字节数。。

    • writeStream.path:流正在写入的文件的路径,指定在 fs.createWriteStream() 的第一个参数。

    文件流
    • fs.createReadStream(path[, options]):返回一个新建的 ReadStream 对象
    options <string> | <Object>
          flags <string>
          encoding <string>
          fd <integer>
          mode <integer>
          autoClose <boolean>
          start <integer>
          end <integer>
          highWaterMark <integer>
    
    • fs.createWriteStream(path[, options]):
    options <string> | <Object>
          flags <string>
          encoding <string>
          fd <integer>
          mode <integer>
          autoClose <boolean>
          start <integer>
    

    四、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():
    • isFile():
    • isSocket():
    • isSymbolicLink():

    属性

    • dev:
    • ino:
    • mode:
    • nlink:
    • uid:
    • gid:
    • rdev:
    • size:
    • blksize:
    • blocks:
    • atimeMs:
    • mtimeMs:
    • ctimeMs:
    • birthtimeMs:
    • atime:访问时间" - 文件数据最近被访问的时间。
    • mtime:修改时间" - 文件数据最近被修改的时间。
    • ctime:变化时间" - 文件状态最近被改变的时间(修改索引节点数据)。
    • birthtime:创建时间" - 文件创建的时间。

    五、fs方法

    获取文件信息
    • fs.stat(path, callback):该方法用于检测文件的状态,可以借此来判断某个文件是否存在,callback回调函数有两个参数err和stats。其中err为错误信息参数,stats为一个文件状态对象。

    • fs.lstat(path, callback):获取文件信息(不解析符号链接)

    • fs.fstat(fd, callback):返回文件详细信息

    • fs.existsSync(path):通过检查文件系统来测试给定的路径是否存在

    • fs.access(path[, mode], callback):测试 path 指定的文件或目录的用户权限。

    *   `mode` <integer>
        fs.constants.F_OK - path 文件对调用进程可见。  如果没指定 mode,则默认为该值。
        fs.constants.R_OK - path 文件可被调用进程读取。
        fs.constants.W_OK - path 文件可被调用进程写入。
        fs.constants.X_OK - path 文件可被调用进程执行。
    
    修改文件权限、信息
    • fs.utimes(path, atime, mtime, callback):改变 path 所指向的对象的文件系统时间戳。

    • fs.chmod(path, mode, callback):异步地改变文件的权限。

    • fs.chown(path, uid, gid, callback):异步地改变文件的所有者和群组。

    文件增删改查
    • fs.appendFile(file, data[, options], callback):异步地追加数据到一个文件,如果文件不存在则创建文件。

    • fs.writeFile(file, data[, options], callback):该方法可用于往指定文件当中写入内容,该内容会覆盖文件当中原有的内容。options参数可选,可以传入编码格式,

    options <Object> | <string>
        encoding <string> | <null> 默认为 'utf8'
        mode <integer> 默认为 0o666
        flag <string> 默认为 'a'
    
    • fs.link(existingPath, newPath, callback):

    • fs.unlink(path, callback):该方法可用于完成指定文件的删除

    • fs.readFile(path[, options], callback):该方法用于读取指定文件当中的内容,options encodingflag ,读取文件一定要设置编码,否则默认是 ”buffer“ 形式出现

    • fs.rename(oldPath, newPath, callback):该方法可用于移动或重命名指定文件

    • fs.mkdir(path[, mode], callback):异步地创建目录,该方法不能完成多级目录的创建,node当中要求要创建的那个文件夹所在的文件夹必须能都存在。

    • fs.rmdir(path, callback):该方法可以用于删除一个空目录。该传入的目录路径当中的目录必须能为一个空目录,

    • fs.readdir(path[, options], callback):该方法可以用于读取一个指定目录当中的信息。callback回调函数当中有两个参数err和files

    • fs.open(path, flags[, mode], callback):callback 打开文件后回调函数,参数默认第一个err,第二个fd

    flags
    'r' - 以读取模式打开文件。如果文件不存在则发生异常。
    
    'r+' - 以读写模式打开文件。如果文件不存在则发生异常。
    
    'rs+' - 以同步读写模式打开文件。命令操作系统绕过本地文件系统缓存。
    
    这对 NFS 挂载模式下打开文件很有用,因为它可以让你跳过潜在的旧本地缓存。 它对 I/O 的性能有明显的影响,所以除非需要,否则不要使用此标志。
    
    
    'w' - 以写入模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。
    
    'wx' - 类似 'w',但如果 path 存在,则失败。
    
    'w+' - 以读写模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。
    
    'wx+' - 类似 'w+',但如果 path 存在,则失败。
    
    'a' - 以追加模式打开文件。如果文件不存在,则会被创建。
    
    'ax' - 类似于 'a',但如果 path 存在,则失败。
    
    'a+' - 以读取和追加模式打开文件。如果文件不存在,则会被创建。
    
    'ax+' - 类似于 'a+',但如果 path 存在,则失败。
    
    mode 可设置文件模式(权限和 sticky 位),但只有当文件被创建时才有效。默认为 0o666,可读写。
    
    • fs.read(fd, buffer, offset, length, position, callback):

    • fs.write(fd, buffer[, offset[, length[, position]]], callback):

    • fs.fsync(fd, callback):将内存中数据写入文件;--刷新内存缓冲区;

    • fs.close(fd, callback):

    • fs.copyFile(src, dest[, flags], callback):异步的将 src 拷贝到 dest

    监听文件
    • fs.watch(filename[, options][, listener]):监视 filename 的变化,filename 可以是一个文件或一个目录。 返回的对象是一个 fs.FSWatcher
    
    用watcher.close()停止监听
    
    options <string> | <Object>
        persistent <boolean> 指明如果文件正在被监视,进程是否应该继续运行。默认 = true
        recursive <boolean> 指明是否全部子目录应该被监视,或只是当前目录。 默认 = false
        encoding <string> 指定用于传给监听器的文件名的字符编码。默认 = 'utf8'
    
    listener <Function> | <undefined> Default: undefined
        eventType <string>
        filename <string> | <Buffer>
    
    • fs.watchFile(filename[, options], listener):监视 filename 的变化。 回调 listener 会在每次访问文件时被调用。
    [options]
        persistent true表示持续监视,不退出程序;
        interval 单位毫秒,表示每隔多少毫秒监视一次文件
    [ listener]
        curr为一个fs.Stat对象,被修改后文件,
        prev,一个fs.Stat对象,表示修改前对象
    
    • fs.unwatchFile(filename[, listener]):

    其他

    • fs.futimes(fd, atime, mtime, callback):改变由所提供的文件描述符所指向的对象的文件系统时间戳

    • fs.readlink(path[, options], callback):

    • fs.realpath(path[, options], callback):

    • fs.fchmod(fd, mode, callback):

    • fs.fchown(fd, uid, gid, callback):

    • fs.fdatasync(fd, callback):

    • fs.ftruncate(fd[, len], callback):如果文件描述符指向的文件大于 len 个字节,则只有前面 len 个字节会保留在文件中。
    • fs.lchmod(path, mode, callback):

    • fs.lchown(path, uid, gid, callback):

    • fs.mkdtemp(prefix[, options], callback):创建一个唯一的临时目录。

    • fs.symlink(target, path[, type], callback):

    • fs.truncate(path[, len], callback):

    相关文章

      网友评论

          本文标题:Node Native (6) fs

          本文链接:https://www.haomeiwen.com/subject/wkegkftx.html