1. 程式人生 > >node 檔案、資料夾 增刪改查

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");
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

 

 

參考網址