NodeJS 文件夹拷贝以及删除功能
文件夹拷贝
functionCopyDirectory(src,dest){ if(IsFileExist(dest)==false){ fs.mkdirSync(dest); } if(fs.existsSync(src)==false){ returnfalse; } //console.log("src:"+src+",dest:"+dest); //拷贝新的内容进去 vardirs=fs.readdirSync(src); dirs.forEach(function(item){ varitem_path=path.join(src,item); vartemp=fs.statSync(item_path); if(temp.isFile()){//是文件 //console.log("ItemIsFile:"+item); fs.copyFileSync(item_path,path.join(dest,item)); }elseif(temp.isDirectory()){//是目录 //console.log("ItemIsDirectory:"+item); CopyDirectory(item_path,path.join(dest,item)); } }); }
文件夹删除
functionDeleteDirectory(dir){ if(fs.existsSync(dir)==true){ varfiles=fs.readdirSync(dir); files.forEach(function(item){ varitem_path=path.join(dir,item); //console.log(item_path); if(fs.statSync(item_path).isDirectory()){ DeleteDirectory(item_path); } else{ fs.unlinkSync(item_path); } }); fs.rmdirSync(dir); } }
nodejs实现文件的拷贝复制
varfs=require('fs'), stat=fs.stat; /* *复制目录中的所有文件包括子目录 *@param{String}需要复制的目录 *@param{String}复制到指定的目录 */ varcopy=function(src,dst){ //读取目录中的所有文件/目录 fs.readdir(src,function(err,paths){ if(err){ throwerr; } paths.forEach(function(path){ var_src=src+'/'+path, _dst=dst+'/'+path, readable,writable; stat(_src,function(err,st){ if(err){ throwerr; } //判断是否为文件 if(st.isFile()){ //创建读取流 readable=fs.createReadStream(_src); //创建写入流 writable=fs.createWriteStream(_dst); //通过管道来传输流 readable.pipe(writable); } //如果是目录则递归调用自身 elseif(st.isDirectory()){ exists(_src,_dst,copy); } }); }); }); }; //在复制目录前需要判断该目录是否存在,不存在需要先创建目录 varexists=function(src,dst,callback){ fs.exists(dst,function(exists){ //已存在 if(exists){ callback(src,dst); } //不存在 else{ fs.mkdir(dst,function(){ callback(src,dst); }); } }); }; //复制目录 exists('./login','./haha',copy);
总结
以上所述是小编给大家介绍的NodeJS文件夹拷贝及删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!