上 nodejs官网 下载安装包 ,安装。 我的是win7-64位系统 ,一直下一步到完成。 其他系统的如*nix ,*ac等没用过 ,暂时不会安装。。。。
打开cmd控制台输入: node -v 显示版本号 表示安装成功了。node更新频繁,跟我的版本号不一致很正常。
nodejs官网API文档查看
在目录下新建js文件 node-fs.js文件 (名字自己随便取)
以下的代码均在node-fs.js文件里面 ,代码多了可以分成几个js文档写
在Learn_Nodejs 下创建testfile目录 随便建几个测试文件或文件夹 如a.html ,
b.txt ,b2.txt, web目录, c.json 里面随便写点内容。
引入fs模块 内置模块直接引用
var fs = require('fs');
// 【 /根目录 ./当前目录 ../上一级目录 】
/*以下会在E盘根目录创建一个名叫abc文件夹(与Learn_Nodejs平级)
如果abc存在则会报已存在错误 already exists 。*/
fs.mkdir('/abc',function(err){
if(err){
console.log(err);
}else{
console.log('dir abc create success');
}
});
/*以下会在Learn_Nodejs目录下创建一个ef子文件夹与node-fs.js平级*/
fs.mkdir('./ef',function(err){
if(err){
console.log(err);
}else{
console.log('create dir ef success');
}
});
/*以下尝试在abc目录下创建子目录a,如果abc不存在会报错 no such file or director*/
fs.mkdir('./abc/a',function(err){
if(err){
console.log(err);
}else{
console.log('create succ');
}
});
/*获取testfile目录下所有的目录及文件名列表*/
fs.readdir('./testfile', (err, data)=> {
if(err){
console.log(err);
}else{
console.log(data);
//输出数组型式['a.html','b.txt','b2.txt','c.json','web']
}
});
/*1、删除 当前目录Learn_Nodejs下的web目录,如不存在该目录,报错。
2、删除 当前目录Learn_Nodejs下的testfile下的web目录,如web不为空,报错*/
fs.rmdir('./testfile/web', function (err) {
if(err){
console.log(err);
}else{
console.log('delete succes ');
}
});
/*读取文件(整个文件一次完整读取出来) 控制台会输出b.txt中的内容,
data默认是buffer,加toSting转为字符串以便测试查看。*/
fs.readFile('./testfile/b.txt', function (err,data) {
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
/*以下控制台会输出a.html中的所有内容。中间utf8为可选参数 encodeing 编码 flag 只读等 */
fs.readFile('./testfile/a.html','utf8', (err, data)=> {
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
var oldName='./testfile/a.html';
var newName='./testfile/acopy.html';
//将testfile目录下a.html改名为acopy.html,如不存在a.html则报错
fs.rename(oldName,newName, function (err) {
if(err){
console.log(err);
}
console.log('ok renamed');
});
//如果改名不在同一个目录下,会改名后移动至目标目录,而不会复制一份副本
//fs.rename('./testfile/acopy.html','./acopy.html', function (err) {
//获取a.html的路径 同样文件不存在会报错
var path = './testfile/a.html';
fs.realpath(path,'utf8',(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data);
//输出 e:\Learn_Nodejs\testfile\a.html
}
});
//删除如下a-c.html文件,如不存在该文件则报错
var path = './testfile/a-c.html';
fs.unlink(path,(err)=>{
if(err){
console.log(err);
}else{
console.log('delete file success');
}
});
var path = "./testfile/b.txt";
fs.stat(path,(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data.isDirectory());//false
console.log(data.isFile()); //true
console.log(data.isBlockDevice()); //false
...
}
});
var path2 = "./testfile";
fs.stat(path2,(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data.isDirectory());//true
console.log(data.isFile()); //false
console.log(data.isBlockDevice()); //false
...
}
});
//写入文件 如果不存在会创建c.txt,再次写入会覆盖之前的内容
var msg='this is a write from nodejs to c.txt';
fs.writeFile('./testfile/c.txt',msg,'utf8',(err)=>{
if(err){
console.log(err);
}else{
console.log('write ok success');
}
});
//向c.txt中追加内容,不存在c.txt 也会创建文件
var msg = 'this si appendfile from nodejs';
fs.appendFile('./testfile/c.txt',msg,'utf8',(err)=>{
if(err){
console.log(err);
}else{
console.log('append file success');
}
})