댓글 검색 목록

[Nodejs] Node.js에서 파일 이름을 대량으로 바꾸는 방법

페이지 정보

작성자 운영자 작성일 20-04-15 09:00 조회 655 댓글 0

이름을 바꿀 때 파일 경로의 이름이 바뀌기 때문에 동일한 프로세스가 파일을 다른 폴더로 이동합니다.


이 작업의 동기는 다음과 같습니다. Hugo에서는 블로그 게시물을 다음과 같이 파일로 작성할 수 있습니다.


first-post.md
second-post.md
third-post.md

index.md 파일이 포함 된 폴더에 추가 할 수도 있습니다.


first-post/
  > index.md
second-post/
  > index.md
third-post/
  > index.md

차이점은 폴더를 사용하여 이미지를 추가하고 블로그 게시물에 더 쉽게 연결할 수 있다는 것입니다.


수동으로 변경 작업을 수행 할 수는 있었지만 폴더에 약 50 개의 파일이 있었고 실제로 그 일을 하고 싶지 않았습니다.


나는 그것이 자동으로 일어나기를 원했습니다.


우리가 사용할 핵심 모듈 하나가 필요합니다 : fs. 핵심 모듈이기 때문에 npm을 설치할 필요가 없습니다.


const fs = require('fs')


그런 다음 현재 폴더에 대한 참조를 얻습니다. 이 변경을 수행하려는 동일한 폴더에서 스크립트를 실행한다고 가정합니다.


__dirname은 항상 현재 작업 폴더를 가리키는 변수입니다.


모든 파일과 폴더의 목록을 얻습니다.


const files = fs.readdirSync(__dirname)


그런 다음 .md로 끝나는 항목 만 필터링 합니다.


for (const file of files) {
  if (file.endsWith('.md')) {
    console.log(file)
  }
}

파일 이름을 나타내는 파일 참조가 있으면 fs.rename()을 호출 할 수 있습니다.


이 함수는 3 개의 매개 변수를 허용합니다.

  • 현재 경로
  • 우리가 가고 싶은 길
  • 오류가 있으면 콜백이 발생했습니다.

현재 경로는 다음과 같습니다


__dirname + '/' + item


이동하려는 경로는 다음과 같습니다.


__dirname + '/' + item.replace('.md', '') + '/index.md'


보다? 파일 이름으로 새 폴더를 만든 다음 index.md를 추가합니다.


fs.rename(
  __dirname + '/' + item,
  __dirname + '/' + item.replace('.md', '') + '/index.md',
  err => {
    console.log(err)
  }
)


전체 코드는 다음과 같습니다.


const fs = require('fs')
const files = fs.readdirSync(__dirname)

for (const file of files) {
  if (file.endsWith('.md')) {
    fs.rename(
      __dirname + '/' + item,
      __dirname + '/' + item.replace('.md', '') + '/index.md',
      err => {
        console.log(err)
      }
    )
  }
}



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.