nodejs 拷貝目錄下所有文件 目錄

var fs=require('fs');
var copy=function(src,dst){
    let paths = fs.readdirSync(src); //同步讀取當前目錄
    paths.forEach(function(path){
        var _src=src+'/'+path;
        var _dst=dst+'/'+path;
        fs.stat(_src,function(err,stats){  //stats  該對象 包含文件屬性
            if(err)throw err;
            if(stats.isFile()){ //如果是個文件則拷貝 
                let  readable=fs.createReadStream(_src);//創建讀取流
                let  writable=fs.createWriteStream(_dst);//創建寫入流
                readable.pipe(writable);
            }else if(stats.isDirectory()){ //是目錄則 遞歸 
                checkDirectory(_src,_dst,copy);
            }
        });
    });
}
var checkDirectory=function(src,dst,callback){
    fs.access(dst, fs.constants.F_OK, (err) => {
        if(err){
            fs.mkdirSync(dst);
            callback(src,dst);
        }else{
            callback(src,dst);
        }
      });
};

const   SOURCES_DIRECTORY = 'd:commonPrefab';  //源目錄
checkDirectory(SOURCES_DIRECTORY,__dirname,copy);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章