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文件夹拷贝及删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!