告诉你们个秘密,网上那些程序啦、API,甚至运行命令那种工具,其实就是咱们平时用的那个软件开发工具包里面的一部分!特别是那个叫做Node.js的,看名字就知道是用Python做后端JavaScript编程的一种语言。那么,如果要用它来操作一些文件夹啊、读取或写入文件之类的事情可怎么办?不用怕,我给你们科普一下,直接用最简单的方法或者找个插件助手就能轻而易举地解决。
一、使用原生Node.js实现选择文件夹
const fs = require('fs'); const path = require('path'); let dir = process.argv[2] || '.'; fs.readdir(dir, (err, files) => { if (err) throw err; console.log('请选择一个文件夹:'); files.forEach(file => { let filePath = path.join(dir, file); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { console.log(`[${file}]`); } else { console.log(file); } }); }); process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { data = data.trim(); let filePath = path.join(dir, data); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { process.stdin.pause(); console.log(`已选择[${data}]文件夹!`); } else { console.log(`${data}不是一个有效的文件夹!`); } }); }); });
想要用Node.js玩转文件系统?小事儿一桩!直接上手FS模块就行,特别是其中的`readdir`方法。只需轻轻一点,想要的目录下的文件和子目录全都会显示出来!现在让我告诉你怎么用Node.js挑选文件夹!
首先,试一下fs.readdir这个函数,它可以告诉我们用户指定文件夹里面都是什么东西——文件?还是文件夹?接下来把fs.stat也加进来瞅瞅细节。用户的选择不是闹着玩儿的,所以要利用process.stdin哈~如果用户选了文件夹,那就当作他的选择这样简便的文件夹选择功能就成形了!
二、使用第三方模块实现选择文件夹
你可能不知道,在Node.js基础上还能搭好多好用的小帮手,方便咱们选文件夹。现在就给大伙儿讲解下两个实用的筛选文件夹模组以及如何使用它们!
1. inquirer
const inquirer = require('inquirer'); const fs = require('fs'); const path = require('path'); let dirs = fs .readdirSync('.') .filter(file => { return fs.statSync(file).isDirectory(); }) .map(dir => { return { name: `[${dir}]`, value: dir }; }); inquirer .prompt([ { type: 'list', name: 'dir', message: '请选择一个文件夹:', choices: dirs, }, ]) .then(answer => { console.log(`已选择[${answer.dir}]文件夹!`); });
Inquirer太好用了!就像在网上找东西一样简单。有了这个工具,我可以轻而易举地在电脑里面找出各种文件夹。首先,用”fs.readdirSync”查询全部文件夹,然后用”filter”筛选出自己想要的内容;接着,用”map”将每个文件夹变成小小的盆栽图片;最后,Inquirer会神奇地帮你挑选,你只要选择看得顺眼的那份就行了。而且,还能通过’answer.dir’了解刚才选中的文件夹具体是什么名字!
2. file-tree-select
你知道吗,file-tree-select这个神奇东西,其实就是inquirer和node-file-tree这俩大块头搭档搞出来的。有什么用处?简单说,它能让你轻而易举地在电脑里找出想要的文件。比如说,你要找某个文件夹,它能把这个地方底下所有的文件细节统统展现在眼前,还附带了上下空格这种快捷操作帮你快速切换其他文件夹。如果你输入了绝对路径,那么它就立马跳到对应的文件清单那儿,轻轻一点就能选中,然后只要运用`.then`这个小技巧,就能瞬间拿到客人挑好的文件夹位置咯。
三、总结
学编程,肯定得有个舒服的环境?这就是我们要用Node弄个文件夹的原因了。今天我就要教大家如何利用Node自带功能、inquirer和file-tree-select完成这项基本操作。小项目自己来就能搞定,大项目的话就拿这个实用工具列表参考下,提高工作效率和代码质量不是梦!
const fileTreeSelect = require('file-tree-select'); const path = require('path'); let dir = process.argv[2] || '.'; let absDir = path.resolve(dir); fileTreeSelect(absDir, { hideFiles: true }).then(result => { console.log(`已选择[${result}]文件夹!`); });
你们知道,编程速度和代码质量太重要了!不用怕看这里!小编这儿有绝招解决这个问题。比如说Node.js快速选文件夹这货就挺给力的。今天我们就来看看如何将这些小妙招用到实际的项目中!
评论0