Like Share Discussion Bookmark Smile

J.J. Huang   2020-01-31   Node.js   瀏覽次數:次   DMCA.com Protection Status

Node.js | File System(目錄篇)

簡介

相關的簡介異步和同步的特性,這篇就不再贅述,請直接看前一章節即可Node.js | File System(文件篇)

建立目錄

語法

以下為建立目錄的語法格式:

1
fs.mkdir(path[, options], callback)

參數

參數使用說明如下:

  • path:文件路徑。
  • options:參數可以是:
    • recursive:是否以遞歸的方式建立目錄,默認為false
    • mode:設置目錄權限,默認為0777
    • callback:回調函數,沒有參數。

實例

file.js,程式如下:

1
2
3
4
5
6
7
8
9
var fs = require("fs");
// tmp 目錄必須存在
console.log("建立目錄 /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目錄建立成功。");
});

執行結果如下:

1
2
3
$ node file.js
建立目錄 /tmp/test/
目錄建立成功。

可以添加recursive: true參數,不管建立的目錄/tmp/tmp/a是否存在:

1
2
3
fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => {
  if (err) throw err;
});

讀取目錄

語法

以下為讀取目錄的語法格式:

1
fs.readdir(path, callback)

參數

參數使用說明如下:

  • path:文件路徑。
  • callback:回調函數,回調函數帶有兩個參數errfileserr為錯誤訊息,files為目錄下的文件數組列表。

實例

file.js,程式如下:

1
2
3
4
5
6
7
8
9
10
11
var fs = require("fs");

console.log("查看 /tmp 目錄");
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});

執行結果如下:

1
2
3
4
5
6
7
8
$ node file.js
查看 /tmp 目錄
.DS_Store
.keystone_install_lock
anydesk
com.apple.launchd.86JzodmpRp
powerlog
test

刪除目錄

語法

以下為刪除目錄的語法格式:

1
fs.rmdir(path, callback)

參數

參數使用說明如下:

  • path:文件路徑。
  • callback:回調函數,沒有參數。

實例

file.js,程式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var fs = require("fs");
// 執行前建立一個空的 /tmp/test 目錄
console.log("準備刪除目錄 /tmp/test");
fs.rmdir("/tmp/test",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("讀取 /tmp 目錄");
   fs.readdir("/tmp/",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach( function (file){
          console.log( file );
      });
   });
});

執行結果如下:

1
2
3
4
5
6
7
8
$ node file.js
準備刪除目錄 /tmp/test
讀取 /tmp 目錄
.DS_Store
.keystone_install_lock
anydesk
com.apple.launchd.86JzodmpRp
powerlog

方法參考手冊

請直接至Node.js官方提供的File System Documentation查看。


註:以上參考了
Node.js 文件系统