node.jsで削除するファイルをごみ箱に移してくれるライブラリ「trash」



node.jsでファイルやフォルダを削除する時に便利なライブラリ「trash」の紹介です。

 node.jsでファイルを削除する時、通常は ' fs.unlink ' を使って処理を行いますが、実行時に ファイルは完全に削除されます。

ですが、デスクトップアプリなどでは削除されたファイルは 一度 ' ごみ箱 ' ファルダに移動されます。

そんな事ができる node.js 用のライブラリが「trash」です。

trash で出来ること 

- ファイルやフォルダを削除するライブラリですが、削除したファイルは ' ごみ箱 ' に移されます

* 通常の ' fs.unlink ' と trash を実行したイメージ


trash のインストール

trash は ' npm ' や ' yarn ' コマンドを使ってプロジェクトにインストールします。

# npm
npm install trash
# yarn
yarn add trash


trash の使い方

 trash は、第一引数に対象となる フォルダやファイルのパスやファイル名を通すだけで 簡単に使用することができます。また、プラットフォームの問題もありません。
* Windows, Mac, Linux  に対応

const trash = require("trash"); // trashの読み込み

// myFile.txt を削除 * ごみ箱フォルダに移動されます
trash(["myFile.txt"]).then(() => {
  // 削除が完了した時の処理
  console.log('削除が完了しました');
});

// フォルダでも問題ありません
trash(["myDir"]).then(() => {
  // 削除が完了した時の処理
});

// ファイル存在のチェックがしたい場合
trash(['myFile.txt']).then((val) => {
 // もし myFile.txt が存在しない場合は 'undefined' が返ってきます
 console.log(val)
})


 ワイルドカード ( globパターン ) を使うことも可能で、指定したパターンでファイルを一括で削除することもできます。

// storageフォルダ内の .jpg ファイルを削除
trash(['storage/*.jpg']).then(() => {
 // 削除が完了した時の処理
})


第二引数では、削除したくないファイルもワイルドカードで指定することが出来ます。

// .txtファイルは削除するが、'important.txt' は削除しない
trash(["*.txt", "!important.txt"]).then(() => {
 // 削除が完了した時の処理
});


Summary

 稼働中のサーバーサイドアプリで ファイルを削除する時に ' ごみ箱 ' に移す場面は無さそうですが、Electron を使ってデスクトップアプリケーションを作っている時に役立ちそうなライブラリです。

GitHub : sindresorhus/trash

 

この記事のカテゴリ
プログラミング

この記事に付けられているタグ