node遍历给定目录下特定文件,内容合并到一个文件
遍历目录用了fs.readdir这个异步方法,得到当前目录下所有的文件和目录的一个数组。
然后判断:
if文件,并且后缀符合设定的规则(本文例子是符合后缀ts,js)直接用同步方法写入,
if目录,继续调用这个方法递归。
const fs = require('fs');
const path = require('path');
/*
需要遍历的目录
这里写了绝对路径
*/
const sourceDir = '/Users/xiaochong/workspace/game/phonics2/assets';
/*
合并后的目标文件路径
*/
const targetFile = './lp2.txt'; function getDirFilePathArr(dir) {
fs.readdir(dir,(err,fileArrLike)=>{
if(err) {
console.log(err);
return;
}
fileArrLike.forEach((filename)=>{
fs.stat(path.join(dir,filename),(err, stats)=> {
if (err) throw err;
if(stats.isFile()) {
if (path.extname(filename) === '.ts' ||path.extname(filename) === '.js') {
let filePath = path.join(dir,filename);
console.log(filePath);
//同步方法:往目标文件targetFile里写入
appendContentSync(targetFile,filePath)
}
}else{//目录,递归
getDirFilePathArr(path.join(dir,filename));
}
})
})
})
} function appendContentSync(targetFile,file){
let content = fs.readFileSync(file, 'utf-8');
fs.appendFileSync(targetFile, content)
}
getDirFilePathArr(sourceDir);
node遍历给定目录下特定文件,内容合并到一个文件的更多相关文章
- 通过java 来实现对多个文件的内容合并到一个文件中
现在有多个txt文本文件,需要把这么多个文件的内容都放到一个文件中去 以下是实现代码 package com.SBgong.test; import java.io.*; public class F ...
- Linux 父子进程实现复制文件内容到另一个文件内
1. 子进程先拷贝前一半 ,父进程一直阻塞到子进程拷贝完再拷贝后一半 /* 子进程先拷贝前一半文件,父进程先阻塞等待子进程拷贝完前一半内容, * 然后父进程在拷贝,后一半内容 * */ #includ ...
- 多个excel文件内容合并到一个excel文件的多个sheet的小程序
# -*- coding:utf-8 -*- import xlrd, xlsxwriter # 待合并excelallxls = ["D:\\excelcs\\***.xlsx" ...
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
(转自:http://blog.csdn.net/gangwazi0525/article/details/7569701) import java.io.File; public class Rea ...
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
脚本内容如下: #!/bin/bash function delete_file { days=$[$-] for i in `find $dir -type f -ctime +$days` do ...
- Windows下遍历某目录下的文件
需求:要求遍历某个目录下的所有文件,文件夹 之前遇到过一些参考程序,其中有一种方法只能遍历 FAT32 格式的目录, 无法遍历NTFS的目录.
- delphi遍历指定目录下指定类型文件的函数
遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...
- [boost][filesystem] 扫描给定目录下所有项
Intro. Boost的filesystem可以用来扫描给定目录下的所有项. 实现 具体实现代码如下: 需要包含的头文件和使用的命名空间: #include <boost/filesystem ...
- node 读取多个文件、合并多个文件、读写多个文件
一.读取文件 1.找文件中匹配的内容 let fs = require('fs') let content = fs.readFileSync('/Users/**/desktop/Test.txt' ...
随机推荐
- COCOS学习笔记--即时动作ActionInstant
Cocos引擎中的动作类的关系图例如以下: 能够看出,Action是继承自Ref类的,之前我的博客中也有讲过,Ref类是cocos2dx全部类的基类.动作类(Action)是全部动作的基类.它通过cr ...
- Windows10 Win键失灵的解决方法
之前在Windows10出来的时候在使用过程中发现:按“Win键”调出开始菜单没有用.一点反应都没有.Win+R等这样的组合键也没用. 后来周年更新后,还是无法使用... 各种方法用尽啊.都不行啊! ...
- luogu3605晋升者计数
https://www.zybuluo.com/ysner/note/1282069 题面 给一颗带点权的树,求每个点的子树中比该点权值大的点的个数. \(n\leq10^5\) 解析 首先有个很无脑 ...
- 错误: 实例 "ruiy" 执行所请求操作失败,实例处于错误状态。: 请稍后再试 [错误: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)].
错误: 实例 "ruiy" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: 'ascii' codec can't decode byte 0xe6 in posi ...
- easyui图标对照
转自:https://blog.csdn.net/qq_34545192/article/details/78250816 原作者文章地址: http://www.cnblogs.com/timeme ...
- LD_LIBRARY_PATH设置问题
今天突然遇到设置LD_LIBRARY_PATH的问题,,发现在.bashrc和/etc/profile中添加 exportLD_LIBRARY_PATH = path_name:$LD_LIBRARY ...
- ubuntu 12.04不能mount nfs目录与挂载后只读不能写问题 (转载)
转自:http://blog.chinaunix.net/uid-20680966-id-3810455.html 服务器用的是fedora 12 以前在helper2416开发板上挂载服务器上的n ...
- 关于file文件操作的头文件 【LINUX】 (转载)
转自:http://blog.csdn.net/figo77ll/article/details/3156052 Linux下如果要对文件进行读取访问,需要包含至少以下两个头文件: #inlcude ...
- bzoj 1718: [Usaco2006 Jan] Redundant Paths 分离的路径【tarjan】
首先来分析一下,这是一张无向图,要求没有两条路联通的点对个数 有两条路连通,无向图,也就是说,问题转化为不在一个点双连通分量里的点对个数 tarjan即可,和求scc还不太一样-- #include& ...
- boxworld开发日记2019-6-8
打算做一个类似RimWorld的游戏,这里记录一下历程.首先,简单回顾一下. 2018年12月23日 场景管理,打算使用四叉树,后来发现四叉树在空间组织和内存占用方面并不占优势,之后计划使用地图分块 ...