var fs = require("fs");//fs 系统文件模块,对文件进行操作.Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。
1.文件读取
var fs = require("fs"); fs.readFile('./a.txt',function(err,data){ if(err){ return console.error(err); } console.log("异步"); console.log(data.toString()); }) var dataSyn = fs.readFileSync('./a.txt'); console.log("同步") console.log(dataSyn.toString())
运行结果:
同步a.txt文件异步a.txt文件
2.文件信息
语法
以下为通过异步模式获取文件信息的语法格式:
fs.stat(path, callback)
参数
参数使用说明如下:
path - 文件路径。
callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象。
fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的
实例:
var fs = require("fs"); fs.stat('./a.txt',function(err,data){ if(err){ return console.error(err); } console.log("异步"); console.log(data); }) var dataSyn = fs.statSync('./a.txt'); console.log("同步") console.log(dataSyn)
运行结果中stat信息:
ino: 3940649673949397,
size: 11, ---文件大小,kb blocks: undefined, atime: 2017-07-08T02:25:14.894Z, mtime: 2017-07-08T02:27:23.823Z, ctime: 2017-07-08T02:27:23.823Z, birthtime: 2017-07-08T02:25:14.894Z ---文件产生时间
常用到的方法:
dataSycn.birthtime
dataSycn.size
3.写文件
语法
以下为异步模式下写入文件的语法格式:
fs.writeFile(filename, data[, options], callback)
如果文件存在,该方法写入的内容会覆盖旧的文件内容。
参数
参数使用说明如下:
path - 文件路径。
data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(流) 对象。
options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'
callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
实例:
// fs.writeFile(filename,data,[options],callback);var w_data = '这是一段通过fs.writeFile函数写入的内容;\r\n';var w_data = new Buffer(w_data);/** * filename, 必选参数,文件名 * data, 写入的数据,可以字符或一个Buffer对象 * [options],flag,mode(权限),encoding * callback 读取文件后的回调函数,参数默认第一个err,第二个data 数据 */fs.writeFile(__dirname + '/test.txt', w_data, {flag: 'a'}, function (err) { if(err) { console.error(err); } else { console.log('写入成功'); }});
追加方式写文件
// fs.appendFile(filename,data,[options],callback);fs.appendFile(__dirname + '/test.txt', '使用fs.appendFile追加文件内容', function () { console.log('追加内容完成');});
4.删除文件
语法
以下为删除文件的语法格式:
fs.unlink(path, callback)
参数
参数使用说明如下:
path - 文件路径。
callback - 回调函数,没有参数。
实例
var fs = require("fs");console.log("准备删除文件!");fs.unlink('./my.txt', function(err) { if (err) { return ; } console.log("文件删除成功!");});
5.删除文件夹
//获取当前目录下面所有的文件及文件夹fs.readdir(".",function(err,files){ console.log(files);});
删除空文件
语法
以下为删除文件的语法格式:fs.rmdir(path, callback)参数
参数使用说明如下:path - 文件夹路径。callback - 回调函数,没有参数。var fs = require(“fs”);fs.rmdir('./aaa', function(err) { if (err) { return ; } console.log("文件夹删除成功!");});
删除有内容的文件
/删除一个非空的文件夹(递归)function delDir(dirPath){ //删除目录,必须先删除目录中所有内容(文件和文件夹)。 //获取目录下面的所有内容。 var files = fs.readdirSync(dirPath); //遍历文件列表 for (var i=0;i
6.创建目录
//使用fs.mkdir创建目录//fs.mkdir(path, [mode], callback);/** * path, 被创建目录的完整路径及目录名; * [mode], 目录权限,默认0777 * [callback(err)], 创建完目录回调函数,err错误对象 */fs.mkdir(__dirname + '/fsDir', function (err) { if(err) throw err; console.log('创建目录成功')});