文件夹创建 fs.mkdirSync(path,[options])
文件夹删除 fs.rmdirSync(path,[options])
options—> {recursive:true | false} 默认false,只能创建/删除一层目录。true:递归创建/删除。
读取文件夹内容 fs.readdirSync(path); 将当前目录下的文件以数组形式返回,且只返回第一层目录。
获取绝对路径:
__filename 获取当前文件的绝对路径
__dirname 获取当前文件所在文件夹的绝对路径
作业:打印输出demo1文件夹下的所有文件的文件名
nodejs中用到某个模块需要先引入 require('模块名称')
let fs = require('fs');
let path = require('path');
首先,我们需要先读取当前文件夹下的文件名:let files = fs.readdirSync(p)
然后,我们需要循环遍历files这个数组。
files.forEach(file => {
let msg = fs.statSync(path.join(__dirname, p, file));
})
其次,如果是文件就直接输出。
if (msg.isFile()) {
console.log(path.join(__dirname, p, file))
}
最后,如果是文件夹就再读文件夹,也就相当于把代码又重头执行一次,所以我们把之前写的代码封装成一个函数,之后在else中调用其函数即可。完整代码如下:
// 需要先引入
let fs = require('fs');
let path = require('path');
readdir('demo1')
// 递归读取文件
function readdir(p) {
//读取当前目录下的文件
let files = fs.readdirSync(p)
// console.log(files)//[ '01.html', 'a.txt', 'b.txt', 'c' ]
//循环当前目录下的文件
files.forEach(file => {
//如果是文件就直接打印,否则就读文件夹
let msg = fs.statSync(path.join(__dirname, p, file));
if (msg.isFile()) {
console.log(path.join(__dirname, p, file))
} else {
readdir(path.join(p, file))
}
})
}
打印结果为: