2014年10月29日 星期三

『Node.js』核心模組檔案系統 fs

node.js  提供了檔案操作的模組,包含讀取、刪除、寫入、更名等等的檔案操作。其中 fs 模組他還提供了同步與非同步的方法來使用。他的方法名稱也相當好懂,如果是非同步那麼就 fs.readFile() ,同步的話就是 fs.readFileSync(),相當好區別。本章節將會介紹檔案系統的基本操作,如:

> 讀取檔案 fs.readFile
> 寫入檔案 fs.writeFile
> 附加檔案內容 fs.appendFile
> 更名檔案 fs.rename
> 刪除檔案 fs.unlink

首先我們先建立一個 nodejs-fs 目錄夾,預設檔案結構如下:


content.txt , test.txt 簡單預設寫一些內文,就可以進行以下的檔案系統相關操作:

在操作的宣告裡面,在 index.js 檔案,首先務必要檔案檔案系統模組

var fs = require(‘fs’);

接著我們就可以使用 fs 所提供的方法,方法可參考 http://nodejs.org/api/fs.html

讀取檔案 fs.readFile

var fs = require('fs’); //載入檔案系統模組
//讀取  content.txt 檔案內容
fs.readFile('content.txt', 'utf-8’, function(err, data){
     //若有錯誤就列印訊息
     if (err) {
          console.error(err);
     } else {

          //將檔案內容輸入
          console.log(data);
     }
});

寫入檔案 fs.writeFile

var data1 = "hello, ithome 鐵人賽”;
fs.writeFile(__dirname + '/content.txt', data1, function(err){
     if (err) {
          console.error(err)
     }
});

附加檔案內容 fs.appendFile

var data2 = "的主計林車修該自是";
fs.appendFile(__dirname + '/content.txt', data2, function(err){
     if (err) {
          console.error(err)
     }
});

更名檔案 fs.rename

var oldpath = "content2.txt";
var newpath = "content.txt";
fs.rename(oldpath, newpath, function(err){
     if (err)
          throw err;

       fs.stat('content.txt', function (err, stats) {
         if (err)
              throw err;

         //將檔案的狀態顯示出來
          // stats: {"dev":16777218,
         //      "mode":33204,
         //      "nlink":1,
         //      "uid":501,
         //      "gid":20,
         //      "rdev":0,"blksize":4096,
         //      "ino":33307834,
         //      "size":1254,
         //      "blocks":8,
         //      "atime":"2014-10-21T14:25:18.000Z",
         //      "mtime":"2014-10-21T14:24:56.000Z",
         //      "ctime":"2014-10-21T14:24:56.000Z"
         // }
        
         console.log('stats: ' + JSON.stringify(stats));
       });
});

刪除檔案 fs.unlink

fs.unlink('test.txt', function (err) {
  if (err) throw err;
  console.log('successfully deleted test.txt');
});

事實上檔案系統操作還有很多方法可以使用,可以看到我們

參考資料:
http://nodejs.org/api/fs.html

沒有留言:

張貼留言