美文网首页
js 递归读取目录下文件写入到另一个文件中

js 递归读取目录下文件写入到另一个文件中

作者: Martain | 来源:发表于2020-08-07 14:27 被阅读0次

这几天因为公司某个软件需要申请软件著作,然而申请软件著作需要整理项目的源代码。一个一个文件复制黏贴太麻烦了,所以写了个脚本来搜集这些源码,之前写了一个python版的,被不知道弄哪去了。目前电脑里面有node环境就直接用node重新写了一版,这里记录下,也希望能帮到有需要的人。

var path = require("path");
var fs = require('fs'); 

// 配置源码位置
let prefix_path = "./"
// 要读取的文件的格式
let allow_file_ext = [".java"]
// 源码保存文件的路径
let write_file_name = "source_code4.txt"

/**
 * 扫描路径下的文件
 * @param {*} _path 要扫描的路径
 */
function scanFile(_path) { 
    fs.stat(_path,(err,data)=>{
        if (data.isDirectory()) {
            console.log("读取路径 "+_path);
            fs.readdir(_path,(err,paths)=>{
                for (let index = 0; index < paths.length; index++) {
                    const m_path = paths[index];
                    let next_path = path.join(_path,m_path) 
                    scanFile(next_path)
                }
            })
        }else{ 
            writeFile(_path)
        } 
    })
}

/**
 * 判断是否是目标文件
 * @param {*} _path 文件路径
 */
function isTargetFile(_path) {
    let ext  =  path.extname(_path) 
    return allow_file_ext.includes(ext,0)
}

/**
 * 写入文件
 * @param {*} _path 文件路径
 */
function writeFile(_path) {
   let need_write =  isTargetFile(_path) 
   if (need_write) {
    console.log("读取"+_path+" 中...");
    let file_name = path.basename(_path)
    let data = fs.readFileSync(_path,'utf-8')
    let _data = "\n"+file_name+"\n"+data
    fs.writeFileSync(write_file_name,_data,{flag:'a',encoding:'utf-8',mode:'0666'},err=>{
        if (err) {
            console.log("写入失败");
        }else{
            console.log(""+_path+" 写入完成");
        }
    })
   } 
}

/**
 * 开始扫描
 */
scanFile(prefix_path)

相关文章

  • nodeJS读取json文件并写入txt或redis中

    【1:读取json写入txt文件】json文件book.json js文件 【2:读取json写入redis文件/...

  • js 递归读取目录下文件写入到另一个文件中

    这几天因为公司某个软件需要申请软件著作,然而申请软件著作需要整理项目的源代码。一个一个文件复制黏贴太麻烦了,所以写...

  • php 常用文件操作

    读取目录下所有文件 创建目录所有文件 写入缓存 读取缓存

  • Golang文件操作

    目录相关 文件相关读取文件 写入文件

  • 文件操作模块(fs)

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX ...

  • 文件操作

    读取和写入:文件有内容读取就是将文件中的内容读取到内存中。写入就是将内存中的内容写入到磁盘文件中。内存就相当于你的...

  • Python -读取,存储文件

    读文件 写文件 从控制台输入并保存 从一个文件读取写入到另一个文件中 Eg:将文件的参数读取,并计算总和,排序

  • fs文件系统操作

    基础写入文件 简单写入文件 流式文件写入 简单文件读取 流式文件读取 流式文件拷贝(读取 + 写入) 复制文件 f...

  • 04-Nextflow 文件和I/O

    基本读/写, 逐行读取文件, 高级文件读取操作, 高级文件写入操作, 列出目录内容, 创建目录, 创建链接, 复制...

  • Android中文件的读写操作

    一、读取assets目录下的文件 二、读取raw目录下的文件 三、读取手机存储文件(内置) 四、写入到手机存储(内...

网友评论

      本文标题:js 递归读取目录下文件写入到另一个文件中

      本文链接:https://www.haomeiwen.com/subject/acpfdktx.html