1/含义
文件系统
2/使用
读取
readFile(filename,[options],callback);
fs.readFile(__dirname +
'/test.txt', {
flag:
'r+',
encoding:
'utf8'},
function (err, data) {
if(err) {
console.error(err);
return; }
console.log(data);});
写文件
// 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.open(filename, flags, [mode], callback);
/**
* filename, 必选参数,文件名
* flags, 操作标识,如"r",读方式打开
* [mode],权限,如777,表示任何用户读写可执行
* callback 打开文件后回调函数,参数默认第一个err,第二个fd为一个整数,表示打开文件返回的文件描述符,window中又称文件句柄
*/
fs.open(__dirname +
'/test.txt',
'r',
'0666',
function (err, fd) {
console.log(fd);
});
创建目录
//使用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(
'创建目录成功')
});
读取目录
//使用fs.readdir读取目录,重点其回调函数中files对象
//fs.readdir(path, callback);
/**
* path, 要读取目录的完整路径及目录名;
* [callback(err, files)], 读完目录回调函数;err错误对象,files数组,存放读取到的目录中的所有文件名
*/
fs.readdir(__dirname +
'/fsDir/',
function (err, files) {
if(err) {
console.error(err);
return;
}
else {
files.forEach(
function (file) {
var filePath = path.normalize(__dirname +
'/fsDir/' + file);
fs.stat(filePath,
function (err, stat) {
if(stat.isFile()) {
console.log(filePath +
' is: ' +
'file');
}
if(stat.isDirectory()) {
console.log(filePath +
' is: ' +
'dir');
}
});
});
for (
var i =
0; i < files.length; i++) {
//使用闭包无法保证读取文件的顺序与数组中保存的致
(
function () {
var filePath = path.normalize(__dirname +
'/fsDir/' + files[i]);
fs.stat(filePath,
function (err, stat) {
if(stat.isFile()) {
console.log(filePath +
' is: ' +
'file');
}
if(stat.isDirectory()) {
console.log(filePath +
' is: ' +
'dir');
}
});
})();
}
}
});
查看文件和目录是否存在
//fs.exists(path, callback);
/**
* path, 要查看目录/文件的完整路径及名;
* [callback(exists)], 操作完成回调函数;exists true存在,false表示不存在
*/
fs.exists(__dirname +
'/te',
function (exists) {
var retTxt = exists ? retTxt =
'文件存在' :
'文件不存在';
console.log(retTxt);
});
删除空目录
//fs.rmdir(path, callback);
/**
* path, 目录的完整路径及目录名;
* [callback(err)], 操作完成回调函数;err操作失败对象
*/
fs.rmdir(__dirname +
'/test',
function (err) {
fs.mkdir(__dirname +
'/test',
0666,
function (err) {
console.log(
'创建test目录');
});
if(err) {
console.log(
'删除空目录失败,可能原因:1、目录不存在,2、目录不为空')
console.error(err);
return;
}
console.log(
'删除空目录成功!');
})