nodejs中有很多重要的内置模块,如fs(文件系统、流) 、 os (操作系统) 、 http 等。
本篇介绍fs文件系统中一些常用api ,在此之前,笔者想先给读者们推荐款nodejs的IDE ——webStrom (当然你也可以使用vi或sublime)。
关于webStrom的安装这里不再赘述,棘手的在于破解,给大家推荐个网站http://idea.lanyus.com/ (在线生成intellij系统软件序列号)
nodejs 中文api参考手册
链接:https://pan.baidu.com/s/1cWLrY2 密码:cooe
好了,废话不多说直接上代码。
01_fs.js
//node中fs: 文件系统模块
//介绍下文件(夹)的 创建、删除、文件(夹)检测、重命名、文件写入及追加等。
var fs=require("fs");
//创建文件夹 ,如果文件夹已存在则抛出异常。一次只能创建一个层次目录,不能同时创建多层次的目录
//如果err为空 说明目录创建成功
fs.mkdir("./testDir/aa/bb",function (err) {
if (err) {
throw err;
}
console.log("目录创建成功");
});
//只能删除空目录,如果目录非空(含子目录或子文件) 则不能成功删除。
fs.rmdir("./testDir",function (err) {
if (err) {
throw err;
}
console.log("目录删除成功");
});
//递归创建多层目录
function mkDirRecursive(dir, callback) {
fs.exists(dir, function(exists) {
if(exists) {
callback();
} else {
//递归调用函数
mkDirRecursive(path.dirname(dir), function(){
fs.mkdir(dir, callback);
console.log("在"+path.dirname(dir) + '目录中创建: ' + dir +'目录');
});
}
});
};
//ok
mkDirRecursive("./testDir/aa/bb",function () {
console.log('ok');
});
//递归删除目录
function rmDirRecursive(dir) {
if( fs.existsSync(dir) ) {
fs.readdirSync(dir).forEach(function(file) {
var curPath = dir + "/" + file;
if(fs.statSync(curPath).isDirectory()) { // recurse
rmDirRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(dir);
}
};
//ok
rmDirRecursive("./testDir/aa");
//判定文件(目录)是否存在
fs.exists("./testDir/cc",function (exists) {
// util.debug(exists ? "存在" : "不存在!");
if (exists) {
console.log("文件存在");
}else{
console.log("文件不存在");
}
});
//文件写入
fs.writeFile("./testDir/a.txt","hello 你好",function (err) {
if (err) {
console.log("写入失败");
throw err;
}
console.log("写入成功");
});
//文件追加写入
fs.appendFile("./testDir/a.txt","hello 你好1111\n",function (err) {
if (err) {
console.log("追加写入失败");
throw err;
}
console.log("追加写入成功");
// });
//删除文件
fs.unlink("./testDir/a.txt",function (err) {
if (err) {
console.log("文件删除失败");
throw err;
}
console.log("文件删除成功");
});
//检测文件 是文件还是目录
fs.stat("./testDir/aa/11.txt",function (err,stats) {
if (stats.isDirectory() {
console.log('是目录');
}else if(stats.isFile()){
console.log('是文件');
}else{
console.log('是其他文件');
}
});
//读取目录 (列出目录中所有文件(夹))
fs.readdir('./testDir/aa',function (err,files) {
console.log(files);
});
//读取目录中的文件,过滤掉子目录
function readDirFiles(dir,callback) {
fs.readdir(dir,function (err,files) {
var dirFiles=[];
//立即执行的函数
(function iterator(i) {
if(i==files.length){
// console.log(dirFiles);
callback(dirFiles);//使用回调函数向外返回
return ;//结束
}
fs.stat(dir+"/"+files[i],function (err,stat) {
if (stat.isFile()) {
dirFiles.push(files[i]);
}
iterator(i+1);
});
})(0);
});
}
//调用
readDirFiles('./testDir/aa',function (dirFiles) {
//console.log("ok");
console.log(dirFiles);
});
上一篇:tomcat设置class热加载
下一篇:nodejs--fs文件流操作


阅读排行


Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1