创建一个upload文件夹
const fs = require('fs');
// 创建文件夹
const mkdir = (path) => new Promise((resolve) => {
fs.mkdir(path, (err) => {
resolve({ err });
});
});
// 获取文件状态
const getStat = (path) => new Promise((resolve) => {
fs.stat(path, (err, stat) => {
resolve({ err, stat });
})
});
// 删除文件
const unlink = (path) => new Promise((resolve) => {
fs.unlink(path, (err) => {
resolve({ err })
})
});
const createDir = async (path) => {
const { err, stat } = await getStat(path);
if (!err && stat.isDirectory()) {
console.log(`directory ${path} is already exist.`);
return;
}
if (!err && stat.isFile()) {
console.log(`unlink file ${path}`);
await unlink(path);
}
const { err: mkdirErr } = await mkdir(path);
if (!mkdirErr) {
console.log(`create directory ${path}`);
} else {
console.error(`create directory error ${mkdirErr.toString()}`);
}
};
createDir('./upload');
找出目录wwwroot下的所有目录
const fs = require('fs');
// 读取目录下的所有目录和文件
const readdir = (path) => new Promise((resolve) => {
fs.readdir(path, (err, files) => {
resolve({ err, files });
});
});
// 获取文件和目录状态
const getStat = (path) => new Promise((resolve) => {
fs.stat(path, (err, stat) => {
resolve({ err, stat });
});
});
const getDirectory = async (path) => {
const { err, files } = await readdir(path);
if (err) {
console.log(`${path} is not a directory`);
return;
}
const directorys = [];
for (let i = 0; i < files.length; i++) {
const file = files[i];
const filePath = `${path}/${file}`;
const { err, stat } = await getStat(filePath);
if (!err && stat.isDirectory()) {
directorys.push(file);
}
}
console.log(directorys);
return directorys;
};
getDirectory('./wwwroot');