如何用代码说明Node.Js文件处理模块

Admin 2022-08-16 群英技术资讯 271 次浏览

这篇文章主要介绍“如何用代码说明Node.Js文件处理模块”,有一些人在如何用代码说明Node.Js文件处理模块的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。



//文件处理类
var fs = require('fs');
var path = require('path');
var util = require('util');
var File = {
    in : function(content,flag){
        this.writeToFile("app.log",content,flag);
    },
    on : function(content,flag){
        this.appendToFile("app.log",content,flag);
    },
    writeInFile : function(content,flag){
        this.writeToFile("app.log",content,flag);
    },
    writeToFile : function(sourceFile,content,flag){
        fs.writeFileSync(sourceFile,util.format(content));
        if(flag){
            console.log("内容写入成功");
        }
    },
    appendToFile : function(sourceFile,content,flag){
        fs.appendFileSync(sourceFile,"\n\n***************    " +this.getTime()+"   **************\n\n");
        fs.appendFileSync(sourceFile,util.format(content));
        if(flag){
            console.log("内容追加成功");
        }
    },
    //复制文件
    copyFile : function(sourceFile,targetFile,log){
        File.makeDirs(path.dirname(targetFile),function(){
            fs.writeFileSync(targetFile,fs.readFileSync(sourceFile));
            if(log){
                  console.log(sourceFile + '->' + targetFile + '复制成功');
              }
        });
    },
    //文件复制到目录
    copyFileToDir :function(sourceFile,targetDir,targetName,log){
        //获取文件名
        var name = '';
        if(targetName != undefined){
            var sourceExt = path.extname(sourceFile);
            var targetExt = path.extname(targetName);
            //得到后缀一样的文件
            name = path.basename(targetName,targetExt) + sourceExt;
        }
        else{
            name = path.basename(sourceFile);
        }
        this.makeDirs(targetDir,function(){
            File.copyFile(sourceFile,path.join(targetDir,name),log);
        });
    },
    //目录复制
    copyDir : function(sourceDir,targetDir,log){
        var sourceDirFiles = this.getDirs(sourceDir);
        sourceDirFiles.forEach(function(item){
            //获取相对路径
            var relativePath = path.relative(sourceDir,item);
            var targetAbsolutePath = path.join(targetDir,relativePath);
            File.copyFile(item,targetAbsolutePath,log);
        });
        console.log("done");
    },
    makeDirs : function(filepath,callback){
        fs.exists(filepath,function(exists){
            if(exists){
                callback();
            }
            else{
                File.makeDirs(path.dirname(filepath),function(){
                    fs.mkdir(filepath,callback);
                });
            }
        });
    },
    getDirs : function(dirpath,result){
        if(result == undefined){
            result = [];
        }
        var dirList = fs.readdirSync(dirpath);
        dirList.forEach(function(item){
            var cfile = path.join(dirpath,item);
            if(fs.statSync(cfile).isDirectory()){
                  File.getDirs(cfile,result);
            }else{
                  result.push(cfile);
            }
        });
        return result;
    },
    getTime:function (d){
        d = d || new Date();
        return d.getHours() + ":" + this.getTwo(d.getMinutes()) + ":" + this.getTwo(d.getSeconds());
    },
    getTwo:function(m){
        return m < 10 ? ("0" + m) : m;
    }
}
 
 
module.exports = File;

以上就是关于“如何用代码说明Node.Js文件处理模块”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服