Node.js 文件系统
Node.js 文件封装在 fs 模块,它提供了文件的读取、写入、更名、删除、便利目录、链接等系统操作。fs 模块提供了异步和同步两个版本。
异步读取文件
fs.readFile(path, [encoding], function(error,data){})
let fs = require('fs');
fs.readFile(__dirname + '/test.txt', function(error, data){
if(error){
console.log(error);
}else{
let dataStr = data.toString();
console.log(data);
}
})
异步写入文件
fs.writeFile(path, data, [encoding], function(error,data){})
writeFile 会覆盖写入新的数据
let fs = require('fs');
let data = 'Hello world';
fs.writeFile(__dirname + '/test.txt', data, function(error){
if(error){
console.log(error);
}else{
console.log('write success');
}
})
异步追加写入文件
fs.appendFile(path , data, [encoding], callback);
和 writeFile 不同,appendFile 写入内容不会覆盖文件原有的内容,会在末尾处添加。
同步读取文件
fs.readFileSync(path, [encoding])
let fs = require('fs');
let data = fs.readFileSync(__dirname + '/test.txt');
console.log(data);
同步写入文件
fs.writeFileSync(path, data, [encoding])
let fs = require('fs');
let data = 'Hello world';
fs.writeFileSync( __dirname + '/test.txt', data);
同步追加写入
fs.appendFileSync(path, data, [encoding])
let fs = require('fs');
let data = 'Hello world';
fs.appendFileSync( __dirname + '/test.txt', data);
查看文件信息
通过同步或者异步获取到文件信息的 stats 类,stats 类里面有很多方法包含这个路径是否文件,是否目录,是否块设备,是否字符设备等等。同时 stats 类里面还有一些属性,比如 size 文件占用的存储空间 及 创建时间、修改时间等等。详情可查阅 API 文档 http://nodejs.cn/api/fs.html#fs_class_fs_stats
fs.stat(path, function(error, stats))
fs.statSync(path)
stats.isDirectory()
stats.isFile()
let fs = require('fs');
let stats = fs.statSync(__dirname);
console.log(stats.isFile())
console.log(stats.isDirectory());
console.log(stats);
更改文件权限
fs.chomd(path, data, callback)
fs.chomdSync(path, data)
更改文件所属的用户和用户组
fs.chown(path, uid, gid, callback)
fs.chownSync(path, uid, gid)
判断文件是否存在
fs.exitsSync(path)
let bool = fs.exitsSync(__filename);
创建文件链接
fs.link(path, newPath, callback)
fs.linkSync(path, newPath)
fs.linkSync(__dirname + '/test.txt', __dirname + '/test_2.txt');
创建出链接文件 text_2.txt ,当修改 text_2.txt 时,原文件 test.txt 也会发生变化。
删除文件
fs.unlink(path, callback)
fs.unlinkSync(path)
fs.unlink(__dirname + '/test_2.txt');
创建文件夹
mode 为权限,可选
fs.mkdir(path, [mode], callback)
fs.mkdirSync(path, [mode])
fs.mkdirSync(__dirname + '/testdir');
创建临时文件夹
临时文件夹会随着电脑的关闭被删除
fs.mkdtemp(path, [encoding], callback)
fs.mkdtempSync(path, [encoding])
删除文件夹
fs.rmdir(path, callback)
fs.rmdirSync(path)