node 文件、文件夹 增删改查

1. 文件夹

增加文件夹

var fs = require("fs");
console.log("创建目录 tmp");
fs.mkdir("tmp",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目录创建成功。");
});
View Code

多层级 文件夹 

var fs = require("fs");  
var path = require("path");  
  
// 递归创建目录 异步方法  
function mkdirs(dirname, callback) {  
    fs.exists(dirname, function (exists) {  
        if (exists) {  
            callback();  
        } else {       
            mkdirs(path.dirname(dirname), function () {  
                var fn = callback
                console.log('callback',fn.toString())
                fs.mkdir(dirname, callback);  
                console.log('在' + path.dirname(dirname) + '目录创建好' + dirname  +'目录');
            });  
        }  
    });  
}  

mkdirs('./t77t/dashboard-1.10.1/src/app/frontend/deploy/validators',() => {
    console.log('done');
})
View Code

 

 

删除文件夹

var fs = require("fs");
console.log("准备删除目录 tmp");
fs.rmdir("tmp",function(err){
   if (err) {
       return console.error(err);
   }
   console.log('clear');
   fs.readdir("tmp",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach( function (file){
          console.log( file );
      });
   });
});
View Code

 

查看文件夹

var fs = require("fs");
console.log("查看 /tmp 目录");
fs.readdir("a",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});
View Code

 

 

2.文件

增加文件

var fs = require("fs");
console.log("准备写入文件");
fs.writeFile('bb.js', '我是通 过fs.writeFile 写入文件的内容',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("数据写入成功!");
   console.log("--------我是分割线-------------")
   console.log("读取写入的数据!");
   fs.readFile('b.js', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("异步读取文件数据: " + data.toString());
   });
});
View Code

 

删除文件

var fs = require("fs");
console.log("准备删除文件!");
fs.unlink('b.js', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件删除成功!");
});
View Code

 

修改文件

// 截取文件
var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开文件!");
fs.open('b.js', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("截取10字节内的文件内容,超出部分将被去除。");
   
   // 截取文件
   fs.ftruncate(fd, 10, function(err){
      if (err){
         console.log(err);
      } 
      console.log("文件截取成功。");
      console.log("读取相同的文件"); 
      fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
         if (err){
            console.log(err);
         }

         // 仅输出读取的字节
         if(bytes > 0){
            console.log(buf.slice(0, bytes).toString());
         }

         // 关闭文件
         fs.close(fd, function(err){
            if (err){
               console.log(err);
            } 
            console.log("文件关闭成功!");
         });
      });
   });
});
View Code

 

查看文件

var fs = require("fs");
fs.readFile('b.js', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("异步读取: " + data.toString());
});
View Code

 

文件其他操作

打开文件

var fs = require("fs");
console.log("准备打开文件!");
fs.open('b.js', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打开成功!");     
});
View Code

关闭文件

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开文件!");
fs.open('b.js', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件!");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }

      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }

      // 关闭文件
      fs.close(fd, function(err){
         if (err){
            console.log(err);
         } 
         console.log("文件关闭成功");
      });
   });
});
View Code

读取字节流

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开已存在的文件!");
fs.open('b.js', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字节被读取");
      
      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});
View Code

 

3.其他

文件、文件夹之间区分

var fs = require('fs');
fs.stat('a', function (err, stats) {
    console.log(stats.isFile());         //true   stats.isDirectory()
})
View Code

 

 

参考网址

 

posted @ 2018-11-29 19:42  justSmile2  阅读(167)  评论(0编辑  收藏  举报