nodejs判断文件、文件夹是否存在,不存在则创建

您所在的位置:网站首页 nodejs文件夹 nodejs判断文件、文件夹是否存在,不存在则创建

nodejs判断文件、文件夹是否存在,不存在则创建

2024-02-01 21:04| 来源: 网络整理| 查看: 265

nodejs判断文件、文件夹是否存在,不存在则创建 判断文件是否存在 1、仅判断文件是否存在 2、判断文件是否存在,并创建 判断文件夹及子文件是否存在,创建出父文件夹

判断文件是否存在

开始的时候使用的是fs.exists判断文件,后面在查文档时偶然看到fs.exists不被提倡使用,而且fs.existsSync方法已经过时淘汰了,下面说说 exists 和 acess 的 区别。 1、fs.exists()的回调参数只有一个参数,并且这个参数是个boolean类型,用于判断文件是否存在,然而在其它Node.js中其他回调函数中第一个参数通常是error,这就容易导致混淆。 2、使用fs.access() 的回调函数也是只有一个参数,而且参数是 err ,更加的方便使用

1、仅判断文件是否存在 1上代码: 1234567891011121314/* 判断文件是否存在的函数 *@path_way, 文件路径  */ function isFileExisted(path_way) {   return new Promise((resolve, reject) => {     fs.access(path_way, (err) => {       if (err) {         reject(false);//"不存在"       } else {         resolve(true);//"存在"       }     })   }) }; 12返回一个promise 对象,通过 async await 同步使用, 需要使用 try  catch  包裹 防止 意想不到的错误

12345678910/* 使用 *@path_way, 文件路径  */ async ()(     try{         const isExisted = await isFileExisted(path_way);     }catch (error){         console.log(error);     } ); 2、判断文件是否存在,并创建 1上代码: 1234567891011121314151617181920/* 判断文件是否存在的函数 *@path_way, 文件路径  */ function isFileExisted(path_way) {   return new Promise((resolve, reject) => {     fs.access(path_way, (err) => {       if (err) {         fs.appendFileSync(path_way, '{"data":[],"total":0}', 'utf-8', (err) => {           if (err) {             return console.log('该文件不存在,重新创建失败!')           }           console.log("文件不存在,已新创建");         });         reject(false);       } else {         resolve(true);       }     })   }) }; 1234 创建文件的时候 需要用到fs.appendFileSync 方法,     第一个参数是路径,     第二个是写入的内容, 你也可以单独写出来,     第三个是 appendFileSync方法的返回格式 默认是 Buffer 类型, 这里为了防止编码混乱,设置成 ‘utf-8’

判断文件夹及子文件是否存在,创建出父文件夹

注意: 这里的路径 pathStr 需要使用 绝对路径

1234567891011121314151617181920212223242526272829303132/* 用于判断路径是否存在, 如果不存在,则创建一个 */ async function mkdirPath(pathStr) {   var projectPath = path.join(process.cwd());   var tempDirArray = pathStr.split('\');   for (var i = 0; i < tempDirArray.length; i++) {     projectPath = projectPath + '/' + tempDirArray[i];     if (await isFileExisted(projectPath)) {       var tempstats = fs.statSync(projectPath);       if (!(tempstats.isDirectory())) {         fs.unlinkSync(projectPath);         fs.mkdirSync(projectPath);       }     }     else {       fs.mkdirSync(projectPath);     }   }   return projectPath; }; /* 判断文件存在 */ function isFileExisted(path_way) {   return new Promise((resolve, reject) => {     fs.access(path_way, (err) => {       if (err) {         reject(false);//"不存在"       } else {         resolve(true);//"存在"       }     })   }) };



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3