背景
- 有时候遇到这个问题,就是向某个目录中写入一个文件,需要层层创建目录,然后才能创建文件,最后写入文件.
- 这个时候就会出现一个麻烦的事情,就是不知道这个目录存不存在,如果这个目录不存在,就是有可能会报错,每次都得检查,就是显得很麻烦,于是封装下面的代码,不过目录存不存在,就是都能写入
代码
const fs = require('fs');
const writeFileRecursive = function (path, buffer, callback) {
// 前面的文件路径
let lastPath = path.substring(0, path.lastIndexOf('/'));
// 递归创建目录
fs.mkdir(lastPath, { recursive: true }, (err) => {
if (err) return callback(err);
fs.writeFile(path, buffer, function (err) {
if (err) return callback(err);
return callback(null);
});
});
};
const buffer = 'hello';
writeFileRecursive('./public/test/test.txt', buffer, (err) => {
if (err) console.error(err);
console.info('write success');
});