fs.mkdirSync可以用来干嘛
时间: 2023-02-26 11:57:03 浏览: 97
`fs.mkdirSync` 是 Node.js 中的一个文件系统模块 (fs module) 中的方法,它可以用来创建一个新的目录。它是同步的,意味着程序在执行到这个方法时会被阻塞,直到目录创建完成后才继续执行。
相关问题
fs.mkdirSync
你想创建一个新的文件夹,对吗?如果是的,你可以使用以下代码来创建一个文件夹:
```javascript
const fs = require('fs');
try {
fs.mkdirSync('path/to/folder');
console.log('文件夹创建成功!');
} catch (err) {
console.error('无法创建文件夹:', err);
}
```
你需要将`'path/to/folder'`替换为你想要创建的文件夹的路径。如果路径中的某个父文件夹不存在,该方法也会创建它们。请注意,这是同步操作,会阻塞代码执行直到文件夹创建完成。
function deepFindFile(){ let imgArrayInfo = [] // 创建输出根目录 if(!fs.existsSync(this.outputPath)) fs.mkdirSync(this.outputPath) fs.readdirSync(this.inputPath).forEach(file=>{ let filePath = path.resolve(this.inputPath,file) let targetPath = path.resolve(this.outputPath,file) let fileStat = fs.statSync(filePath) if(fileStat.isDirectory()){ // 创建对应输出目录 if(!fs.existsSync(targetPath)) fs.mkdirSync(targetPath) imgArrayInfo = [...imgArrayInfo,...this.deepFindFile()] }else{ const fileNameReg = /\.(jpe?g|png|svg|gif)$/ if(fileNameReg.test(filePath)){ let imgData = fs.readFileSync(filePath) imgArrayInfo.push({ inputPath:filePath, //图片文件 原路径 file:imgData, //图片文件 目标存放路径 targetPath }) } } }) return imgArrayInfo } 为什么这个函数会死循环
这个函数会死循环是因为在处理子目录时,它没有对子目录进行递归调用该函数,导致程序一直在同一个目录下寻找文件,无法跳出循环。需要在处理子目录时,加上递归调用该函数,比如在 if (fileStat.isDirectory()) 分支中加上 `imgArrayInfo = [...imgArrayInfo, ...this.deepFindFile.call({inputPath: filePath, outputPath: targetPath})]` 就可以了。