// 这个是用于删除重复的值的, node index.js dirName
const argv = process.argv
const fs = require('fs');
if (argv.length <= 2) {
console.log('请指定待处理的文件地址')
return
}
const target_folder = argv[2]
console.log(`需要处理的文件夹: ${target_folder}`)
let list = [];
fs.readdir('./', async (err, date) => {
(!!err) && console.log(err);
// 1. 获取参考目录里的文件名
for(let i = 0 ; i<date.length ; i++) {
if (date[i] == target_folder) continue;
let stat = fs.lstatSync(date[i]);
if(stat.isDirectory()){
console.log(`参考目录: ${date[i]}`)
list.push(...await fs.readdirSync(date[i]));
}
}
// 2.获取指定目录中与其他目录重复的项
let target_list = await fs.readdirSync(target_folder);
delete_list = target_list.filter( (d_l_item)=> {
let bool = list.some( (t_l_item)=> {
return d_l_item === t_l_item
})
return bool
})
// 3.在指定目录中删除项
console.log(`需要删除数量: ${delete_list.length}`)
delete_list.forEach(element => {
fs.unlink(`${target_folder}/${element}`, () => {
console.log(`${element} , 已删除`)
})
});
})
网友评论