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