Node.js 폴더 파일 이름을 시간순 정렬 (readdir stat)

Node.js에서 지정한 폴더 안의 파일 이름이 대상입니다.

타임스탬프의 새로운 순서로 정렬(sort)한 결과를 검색 / 얻으려면 어떻게 해야 할까요?


  1. fs.readdir(Sync) 사용하여 파일 이름 목록(리스트)을 검색 및 얻기
  2. fs.stat (Sync) 각 파일 정보(이번에는 최종 갱신 날짜로 정렬)를 얻기
  3. 취득한 날짜를 사용하여 sort 정렬하기


1
2
3
4
5
6
7
8
9
10
11
12
const fs = require('fs')
const dir = './2017/'
 
const list = fs.readdirSync(dir).map(filename => {
  return {
    filename: filename,
    mtime: fs.statSync(dir + filename).mtime
  }
})
 
list.sort((a, b) => b.mtime - a.mtime)
console.dir(list)
cs


Node.js 실행 결과


1
2
3
4
5
6
7
8
9
10
11
12
13
[ { filename: '07-01.js', mtime: 2018-02-18T09:15:28.458Z },
  { filename: '07-02.js', mtime: 2018-02-17T08:29:50.272Z },
  { filename: '06-02.js', mtime: 2018-02-15T12:29:03.344Z },
  { filename: '06-01.js', mtime: 2018-02-15T10:34:36.905Z },
  { filename: '05-02.js', mtime: 2018-02-12T00:48:21.344Z },
  { filename: '05-01.js', mtime: 2018-02-12T00:21:11.463Z },
  { filename: '04-02.js', mtime: 2018-02-11T09:46:09.480Z },
  { filename: '04-01.js', mtime: 2018-02-11T09:17:56.351Z },
  { filename: '03-01.js', mtime: 2018-02-10T10:16:00.356Z },
  { filename: '02-02.js', mtime: 2018-02-09T13:06:17.970Z },
  { filename: '01-02.js', mtime: 2018-02-09T12:38:58.853Z },
  { filename: '02-01.js', mtime: 2018-02-09T12:13:10.494Z },
  { filename: '01-01.js', mtime: 2018-02-09T12:08:10.569Z } ]
cs


【참고】

File System | Node.js v9.5.0 Documentation 

https://nodejs.org/api/fs.html


관련 글

Excel 엑셀 날짜 더하기 빼기와 DATEDIF 함수 사용법

비욘드컴페어, 날짜는 비교 조건에서 제외 (BeyondCompare4)

리눅스 명령어 모음과 사용 방법 (VI, EMACS) cat, cp, mv 등 옵션 포함


이 글을 공유하기

댓글(0)

Designed by JB FACTORY