English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

node를 사용하여 파일을 대량으로 이름을 바꾸는 함수를 구현

서론

최근 점심 시간에 새대에서 JS 과정을 듣던 때, 교수님이 node에 대해 설명하는 중에 node가 파일을 대량으로 이름을 변경할 수 있다는 말을 했습니다. 그래서 이 기능을 구현할 수 있을지 생각했습니다.

node의 공식 문서를 보고, fs 모듈이 readdir API를 가지고 있다는 것을 알았습니다. 이 API는 디렉토리의 내용을 읽고, 테스트를 했을 때, 반환된 결과는 배열로, 요소는 폴더 이름입니다. 자세한 설명은 여기 참조: https://ko.oldtoolbag.com/article/58609

또 하나의 API가 있습니다. rename이라는 이름에서 알 수 있듯이, 파일 이름을 변경하는 것과 관련된 API입니다. 자세한 내용은 여기 참조: https://ko.oldtoolbag.com/article/58548

구현 방식

의사결정을 정리하면 간단합니다. 먼저 원본 파일의 파일 이름을 읽어서 배열에 넣고, 새 이름을 배열로 사용하여 renameAPI를 통해 구현하면 됩니다. 하지만 대량으로 이름을 변경할 수 있는 이름은 숫자에 따라야 합니다. +1 규칙을 적어보았습니다

예제 코드

//rename.js
const fs = require('fs') //node의 내장 파일 시스템을 도입
function rename() {
 let newName = []
 fs.readdir('.',/file/', (err, oldName) => { //file 폴더 아래의 파일 이름을 읽습니다. oldName은 배열입니다
 if (err) {
  console.log(err)
 }
 for (let i = 0; i < oldName.length; i++) {
  let name = `new${i}.jpg` // 이미지를 예로 들어
  newName[i] = name  // 이름을 새로운 배열에 할당합니다
 }
 for (var i = 0; i < oldName.length; i++) {
  let oldPath = `./file/${oldName[i]}` //원래 경로
  let newPath = `./file/${newName[i]}` //새 경로
  fs.rename(oldPath, newPath, (err) => { //이름 변경
  if (err) {
   console.log(err)
  }
  console.log('done!')
  }
 }
 }
}
rename()

파일 디렉토리

file 폴더 아래에 재이름 지우려는 파일을 두고 있습니다.

터미널을 엽니다. cd를 rename 폴더 아래로 이동하고 node rename.js를 실행합니다.

이것은 단순한 구현일 뿐, 여전히 많은 부족함이 있으며, 더 나은 방법이 있다면 논의를 환영합니다.

정리

이것이 이 기사의 모든 내용입니다. 이 기사의 내용이 여러분의 학습이나 업무에 도움이 되길 바랍니다. 의문이 있으시면 댓글을 통해 교류해 주시기 바랍니다. 감사합니다.呐喊 교본에 대한 여러분의 지지에 감사합니다.

성명: 본 내용은 인터넷에서 가져왔으며, 저작권자는 모두입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 본 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 문제가 있는 내용을 발견하시면 notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 이메일을 보내서 (#을 @으로 변경하여) 신고하시고 관련 증거를 제공하시면, 실제로 확인되면 해당 내용을 즉시 삭제할 것입니다.

추천 합니다