tech.chakapoko.com
Home / Node.js / ファイル

[Node.js]ディレクトリの作成と削除をする

ディレクトリを作成する

Node.jsでディレクトリを作成するには fs.mkdir を使います。

const fs = require('fs');

fs.mkdir('test', (err) => {
    if (err) { throw err; }
    console.log('testディレクトリが作成されました');
});

fs.mkdir には同期版の fs.mkdirSync も存在します。

fs.mkdirSync('test');

fs.mkdir はすでにディレクトリが存在するとエラーになります。testディレクトリがすでにある状態で fs.mkdir を実行するとエラーになります。

fs.mkdir を続けて実行してみましょう。

const fs = require('fs');

fs.mkdir('test', (err) => {
    if (err) {
        console.log(err.toString());
        return;
    }
    console.log('testディレクトリが作成されました');
    fs.mkdir('test', (err) => {
        if (err) {
            console.log(err.toString());
            return;
        }
    })
});

このコードを実行すると次のようにエラーが表示されます。

testディレクトリが作成されました
Error: EEXIST: file already exists, mkdir 'test'

親ディレクトリも同時に作成する

recursive オプションを使うと、親ディレクトリも含めてディレクトリを作成できます。

const fs = require('fs');

fs.mkdir('a/b/c/d/e', { recursive: true }, (err) => {
    if (err) throw err;
});

また、recursive オプションを使うとすでにディレクトリが存在していてもエラーになりません。

空のディレクトリを削除する

空のディレクトリの削除は fs.rmdir で行えます。

fs.rmdir('dir', (err) => {
    if (err) throw err;

    console.log('a ディレクトリを削除しました');
});

中身のあるディレクトリを削除する

中身のあるディレクトリはそのままでは fs.rmdir で削除することはできません。まずは中身を削除する必要があります。

もしくは fs-extra を使うと簡単に削除できます。

$ npm install fs-extra
const fs = require('fs-extra');

fs.remove('dir', (err) => {
    if (err) throw err;

    console.log('a ディレクトリを削除しました');
});