Node.js 使用循环批量创建文件到当前目录中的每个文件夹
Node.js batch create files to every folders in current directory with loop
我在当前目录下有子20个目录。我想为当前目录中的每个文件夹创建 'README.md' 。这是我到目前为止尝试过的,
const fs = require('fs').promises;
const path = require('path');
async function readDirectory(filePath) {
try {
const data = await fs.readdir(filePath);
data.forEach(async file => {
fs.writeFile('README.md', file);
});
} catch (err) {
console.log(err.message);
}
}
readDirectory(path.resolve(__dirname));
但结果不是我想要的。有什么建议吗?
首先writeFile参数应该是你想要的文件的完整路径create/write
fs.writeFile( file, data, options, callback )
所以我稍微修改了你的代码
const fs = require('fs');
const path = require('path');
async function readDirectory(filePath) {
const data = await fs.readdirSync(filePath);
const folders = data.filter((item) => fs.lstatSync(item).isDirectory());
folders.map((folder) => {
const subFilePath = path.join(filePath, `/${folder}` + `/README.md`);
fs.writeFile(subFilePath, '', (err) => {
if (err) console.log(err);
else {
console.log(`File ${subFilePath} created`);
}
});
});
}
readDirectory(path.resolve(__dirname));
我在当前目录下有子20个目录。我想为当前目录中的每个文件夹创建 'README.md' 。这是我到目前为止尝试过的,
const fs = require('fs').promises;
const path = require('path');
async function readDirectory(filePath) {
try {
const data = await fs.readdir(filePath);
data.forEach(async file => {
fs.writeFile('README.md', file);
});
} catch (err) {
console.log(err.message);
}
}
readDirectory(path.resolve(__dirname));
但结果不是我想要的。有什么建议吗?
首先writeFile参数应该是你想要的文件的完整路径create/write
fs.writeFile( file, data, options, callback )
所以我稍微修改了你的代码
const fs = require('fs');
const path = require('path');
async function readDirectory(filePath) {
const data = await fs.readdirSync(filePath);
const folders = data.filter((item) => fs.lstatSync(item).isDirectory());
folders.map((folder) => {
const subFilePath = path.join(filePath, `/${folder}` + `/README.md`);
fs.writeFile(subFilePath, '', (err) => {
if (err) console.log(err);
else {
console.log(`File ${subFilePath} created`);
}
});
});
}
readDirectory(path.resolve(__dirname));