诚惶诚恐地写下这篇博客,在此之前好像还没试过今天这样从一大早开始coding到晚上,在今天将过明日将至的时候把这个功能做出来了,实在是万分开心,在开心之余有几点小心得,先记下来免得以后忘了:
1.关于Promise对象,在正常情况下调用resolve,异常时调用reject。(应该还有的,等我明天补充,我得早点休息明天才有精力coding)。
关于windows下fs.copyFile()作用于文件夹时,好像是真的,没有权限。所以我通过fs.mkdir()的方式来实现。以及=>(箭头函数)用起来真是太爽了。
关于windows下分隔符,用"/\\"来实现转译("/\\"="\")。
关于取得路径下的子文件路径通过类似 Path+"/\\"+item 的方式实现,这一句就可以作为路径来使用~
2.关于码代码,可以不急不慢地来,不确定的对象可以一步步通过console.log()来确认是否可以得到这个对象,实现某个功能。一旦急躁了真是脑子一团乱麻。
3.写代码真的好开心阿~~
好了,就先写到,后边把代码贴上。我要去睡觉了,现在独霸客厅,在客厅写代码睡觉真的爽。学了一段时间的WEB了,感觉写下了这篇东西,算是终于有丶东西了。希望明天又是开心的一天嘿嘿。
const fs = require("fs");
function cpdir(oldDirPath,newDirPath) {
return new Promise(function (resolve,reject) {
fs.mkdir(newDirPath,err=>{
reject(err);
});
fs.readdir(oldDirPath,(err,list)=>{
if (err) {
reject(err);
}else {
resolve(list);
list.forEach(item=>{
fs.stat(oldDirPath+"/\\"+item,(err,stats)=>{
if (stats.isFile()) {
fs.copyFile(oldDirPath+"/\\"+item,newDirPath+"/\\"+item,err=>{
console.log(err);
});
}else {
oldDirPath += ("/\\"+item);
newDirPath += ("/\\"+item);
cpdir(oldDirPath,newDirPath);
}
});
});
}
});
});
}