Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用node.js确保fs.writeFile之前的所有目录都存在大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道在写入新文件之前确保路径中的所有文件夹存在的正确方法是什么.

在以下示例中,代码失败,因为文件夹缓存不存在.

fs.writeFile(__config.path.base + '.tmp/cache/shared.cache',new Date().getTime(),function(err) {
        if (err){
            consoleDev('Unable to write the new cache timestamp in ' + __filename + ' at ' + __line,'error');
        }else{
            consoleDev('Cache process done!');
        }

        callBACk ? callBACk() : '';
    });

解:

// Ensure the path exists with mkdirp,if it doesn't,create all missing folders.
    mkdirp(path.resolve(__config.path.base,path.dirname(__config.cache.lastCachetimestampFilE)),function(err){
        if (err){
            consoleDev('Unable to create the directories "' + __config.path.base + '" in' + __filename + ' at ' + __line + '\n' + err.message,'error');
        }else{
            fs.writeFile(__config.path.base + filename,function(err) {
                if (err){
                    consoleDev('Unable to write the new cache timestamp in ' + __filename + ' at ' + __line + '\n' + err.message,'error');
                }else{
                    consoleDev('Cache process done!');
                }

                callBACk ? callBACk() : '';
            });
        }
    });

谢谢!

解决方法

使用 mkdirp.

如果你真的想自己做(递归):

var pathToFile = 'the/file/sits/in/this/dir/myfile.txt';

pathToFile.split('/').slice(0,-1).reduce(function(prev,curr,i) {
  if(fs.existsSync(prev) === falsE) { 
    fs.mkdirSync(prev); 
  }
  return prev + '/' + curr;
});

您需要切片来省略文件本身.

大佬总结

以上是大佬教程为你收集整理的如何使用node.js确保fs.writeFile之前的所有目录都存在全部内容,希望文章能够帮你解决如何使用node.js确保fs.writeFile之前的所有目录都存在所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。