이 글에서는 비어 있지 않은 폴더와 하위 디렉터리의 모든 파일을 주기적으로 삭제하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!