nodejs学习之--fs模块

1、安装node

nodejs官网 下载安装包 ,安装。 我的是win7-64位系统 ,一直下一步到完成。 其他系统的如*nix ,*ac等没用过 ,暂时不会安装。。。。

打开cmd控制台输入: node -v 显示版本号 表示安装成功了。node更新频繁,跟我的版本号不一致很正常。

nodejs官网API文档查看

显示当前node版本


新建一个项目(文件夹)我的(E:/Learn_Nodejs)

在目录下新建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');

创建文件夹-fs.mkdir(path[, mode], callback)

//  【  /根目录  ./当前目录  ../上一级目录 】

/*以下会在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');
    }
});

读取文件夹-fs.readdir(path[, options], callback)

/*获取testfile目录下所有的目录及文件名列表*/
fs.readdir('./testfile', (err, data)=> {
  if(err){
    console.log(err);
  }else{
    console.log(data);
    //输出数组型式['a.html','b.txt','b2.txt','c.json','web']
  }
});

删除文件夹-fs.rmdir(path, callback)

/*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 ');
  }
});

读取文件-fs.readFile(file[, options], callback)

/*读取文件(整个文件一次完整读取出来) 控制台会输出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());
  }
});

文件改名-fs.rename(oldPath, newPath, callback)

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) {

获取路径-fs.realpath(path[, options], callback)

//获取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
  }

});

删除文件-fs.unlink(path, callback)

//删除如下a-c.html文件,如不存在该文件则报错
var path = './testfile/a-c.html';
fs.unlink(path,(err)=>{
  if(err){
    console.log(err);
  }else{
    console.log('delete file success');
  }
});

判断-fs.stat(path, callback)

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
    ...
  }
});

写入文件-fs.writeFile(file, data[, options], callback)

//写入文件 如果不存在会创建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');
  }
});

追加写入-fs.appendFile(file, data[, options], callback)

//向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');
  }
})

下一篇 继续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值