nodejs递归复制文件,同步方法。在官方API中只提供了最基本的方法,只能复制单级文件,如果要复制一个多级的文件夹就只能一级一级的复制,感觉不是很方便,因此简单写了一个支持多级文件夹复制的方法。
代码
const fs = require('fs')
const path = require('path')
// 同步复制文件夹
function travel(dir, callback) {
fs.readdirSync(dir).forEach(function(file) {
let pathname = path.join(dir, file)
if(fs.statSync(pathname).isDirectory()) {
mkdir(pathname.replace(/\btemplate\b/, 'views'))
travel(pathname, callback)
}else {
callback(pathname)
}
})
}
// 同步创建文件夹目录
function mkdir (url) {
if (fs.existsSync(url)) {
return true
} else {
if (mkdir(path.dirname(url))) {
fs.mkdirSync(url)
return true
}
}
}