この記事では主に空ではないフォルダーとサブディレクトリを周期的に削除するNode.JSと、空ではないフォルダーを再帰的に削除するnode.jsのサンプルコードを紹介しますので、必要な方は参考にしてください
最近ループ関数を実装しました。フォルダーは空ではなく、サブフォルダーやファイルが含まれている場合もあります。オンラインでいくつかの既存のライブラリを見つけましたが、削除の進行状況が表示されるものはありません。それで私も自分で書きました。
var fs = require('fs') var path = require('path') var remove = function(tarPath, cb, removeStates) { if (!removeStates) { removeStates = { cur: 0, all: 0 } } else { if (!removeStates.cur) { removeStates.cur = 0; } if (!removeStates.all) { removeStates.all = 0; } } removeStates.all++; fs.stat(tarPath, function(err, states) { removeStates.cur++; if (err) { cb && cb() return } if (states.isDirectory()) { fs.readdir(tarPath, function(err, files) { if (err) { console.log(err) cb && cb() return } if (files.length < 1) { fs.rmdir(tarPath, cb) return } var count = 0 var checkEnd = function() { if (++count == files.length) { fs.rmdir(tarPath, cb) } } files.forEach(function(file) { remove(path.join(tarPath, file), checkEnd, removeStates) }) }) } else { fs.unlink(tarPath, function(err) { if (err) { console.log(err) } cb && cb() return }) } }) return removeStates }
使い方はとても簡単です
var states = remove('./testdir', function() { console.log('delete complete') clearInterval(checkTimer) }); var checkTimer = setInterval(function() { console.log(states) }, 500);
出力結果:
node remove.js { cur: 546, all: 546 } delete complete
PS: 非再帰的に削除する NodeJ を見てみましょう空のフォルダー
これ記事は最初です これは、fs.unlink() がファイルの削除しかできないためです。
fs.rmdir()
或fs.rmdirSync()
ユーザーは空のフォルダーを削除します。ファイルの削除には fs.unlink() または fs.unlinkSync() が使用されるため、空ではないフォルダーを削除するには再帰が必要です。
function deleteFolderRecursive(path) { if( fs.existsSync(path) ) { fs.readdirSync(path).forEach(function(file) { var curPath = path + "/" + file; if(fs.statSync(curPath).isDirectory()) { // recurse deleteFolderRecursive(curPath); } else { // delete file fs.unlinkSync(curPath); } }); fs.rmdirSync(path); } };
以上、皆様の参考になれば幸いです。
関連記事:
vueカルーセルチャートプラグインvue-concise-sliderの使い方
以上がNode.JS ループにより、空ではないフォルダーおよびサブディレクトリ内のすべてのファイルが削除されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。