FileSystem

fs

FileSystem简介

文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。您可以通过调用require('fs')来获取该模块。文件系统模块中的所有方法均有异步和同步版本。

fs.open(path, flags, [mode], callback)

fs.open(path, flags, [mode], callback)

  • path : 要打开的文件的路径

  • flags : 打开文件的方式 读/写

  • mode : 设置文件的模式 读/写/执行 4/2/1

  • callback : 回调

    • err : 文件打开失败的错误保存在err里面,如果成功err为null

    • fd : 被打开文件的标识,

fs.open('1.txt', 'r', function(err, fd) {

    //console.log(err);
    //console.log(fd);

    if (err) {
        console.log( '文件打开失败' );
    } else {
        console.log( '文件打开成功' );
        console.log( fd );
    }

});

fs.read(fd, buffer, offset, length, position, callback)

  • fd : 通过open方法成功打开一个文件返回的编号

  • buffer : buffer对象

  • offset : 新的内容添加到buffer中的起始位置

  • length : 添加到buffer中内容的长度

  • position :读取的文件中的起始位置

  • callback : 回调

    • err

    • uffer的长度

    • buffer对象

fs.open('1.txt', 'r', function(err, fd) {
    if (err) {
        console.log('文件打开失败');
        console.log(err);
    } else {
        var bf1 = new Buffer('123456789');
        fs.read( fd, bf1, 0, 4, null, function( err, len, newBf ) {
            console.log( newBf );
        } );
    }
});

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

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

  • fd : 打开的文件

  • buffer : 要写入的数据

  • offset : buffer对象中要写入的数据的起始位置

  • length : 要写入的buffer数据的长度

  • position : fd中的起始位置

  • callback : 回调

    • err:错误信息,没有就显示null

    • written:表明传入的string需要写入的字符串的字节长度

    • string:表明传入的字符串

fs.write( fd, bf, 0, 3, 5, function() {
            console.log(arguments);
        } )

另一种写法:

fs.write(fd, data[, position[, encoding]], callback)

fs.write(fd, '1234aqws你好', 0, 'utf-8', function(err, written, string) {
            console.log("ok");
            console.log(err);
            console.log(written);
            console.log(string);
});

操作结束后,要关闭打开的文件。

fs.close(fd, function() {

});

文件直接操作

fs.writeFile(filename, data, encoding='utf8', [callback])

异步地写入数据到文件,如果文件已经存在,则替代文件。 data 可以是一个字符串或一个 buffer

  • file | | 文件名或文件描述符

  • data |

  • options |

    • encoding | 默认 = 'utf8'

    • mode 默认 = 0o666

    • flag 默认 = 'w'

  • callback

fs.readFile(filename, [options], callback)

  • filename {String}

    • options {Object}

    • encoding {String | Null} default = null

  • flag {String} default = 'r'

  • callback {Function}

异步读取一个文件的全部内容。举例:

fs.readFile('test.txt', function (err, data) {
  if (err) throw err;
  console.log(data);
});

删除一个文件

完成时的回调函数(callback)只接受一个参数:可能出现的异常信息.

fs.rename(oldPath, newPath, callback)

重命名一个函数

完成时的回调函数(callback)只接受一个参数:可能出现的异常信息.

fs.stat(path, callback)

返回文件的详细信息

dev : 文件或目录所在的设备ID。该属性值在UNIX系统下有效; mode : 文件或目录的权限标志,采用数值形式表示; nlink : 文件或目录的的硬连接数量; uid : 文件或目录的所有者的用户ID。该属性值在UNIX系统下有效; gid : 文件或目录的所有者的用户组ID。该属性值在UNIX系统下有效; rdev : 字符设备文件或块设备文件所在设备ID。该属性值在UNIX系统下有效;** ino : 文件或目录的索引编号。该属性值仅在UNIX系统下有效; size : 文件的字节数; atime : 文件或目录的访问时间; mtime : 文件或目录的最后修改时间; ctime : 文件或目录状态的最后修改时间(包括权限、所有者等,比mtime范围大); birthtime : 文件创建时间,文件创建时生成。在一些不提供文件 birthtime 的文件系统中,这个字段会使用 ctime 或 1970-01-01T00:00Z 来填充;

fs.watch(filename, [options], [listener])

监听文件或者文件夹的变化,监听器的回调函数得到两个参数(event, filename)。其中 event 是 'rename'(重命名)或者 'change'(改变),而 filename 则是触发事件的文件名。

文件夹操作

fs.mkdir(path, [mode], callback)

创建文件夹,完成时的回调函数(callback)只接受一个参数:可能出现的异常信息。文件 mode 默认为 0777。

fs.rmdir(path, callback)

删除一个文件夹

fs.readdir(path, callback)

读取 path 路径所在目录的内容。 回调函数 (callback) 接受两个参数 (err, files)其中 files 是一个存储目录中所包含的文件名称的数组,数组中不包括 '.' 和 '..'。

Last updated