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