제목:사진 폴더정리 script 생성
요구사항
1.동영상(mp4),이미지(png)파일들이 함께 있는 폴더를 각각 동영상과 이미지를 분리하여 관리
2.동영상 파일은 video 폴더에 png 파일은 capture 폴더에 각각 이동하여 정리
const fs = require("fs");
const path = require("path");
const process = require("process");
console.log(process.cwd());
//현재 경로를 workingDir로 설정하여 하위 폴더로 video,capture폴더 생성
// 'c:/dev/node/code/15npm'
// 실행하는명령어의 매개변수를 받아 workinDir 로 설정하여
//하위 폴더로 video,capture 폴더 생성
const workinDir = process.cwd();
const videoDir = path.join(workinDir, "video");
const captureDir = path.join(workinDir, "capture");
if (!fs.existsSync(videoDir)) fs.mkdirSync(videoDir);
if (!fs.existsSync(captureDir)) fs.mkdirSync(captureDir);
//현재 경로의 모든 파일을 읽음
fs.promises
.readdir(workinDir)
.then((files) => {
console.log(files);
fileCheck(files);
})
.catch(console.error);
//파일 체크 후 이동
function fileCheck(files) {
files.forEach((file) => {
if (isVideoFile(file)) {
//video 폴더로 파일 이동시키기
move(file, videoDir);
console.log("비디오" + file);
} else if (isImageFile(file)) {
//capture 폴더로 이동
move(file, captureDir);
console.log("이미지" + file);
}
});
}
//파일이동
function move(file, targetDir) {
//파일이동 경로만들기
const oldPath = path.join(workinDir, file);
const newPath = path.join(targetDir, file);
//파일이동 --> fs.promises.rename(oldPath, newPath)
fs.promises.rename(oldPath, newPath);
}
//video 파일 여부 체크
function isVideoFile(file) {
const fileObject = path.parse(file);
if (fileObject.ext == ".mp4") return true;
}
//img 파일 여부 체큰
function isImageFile(file) {
const fileObject = path.parse(file);
if (fileObject.ext == ".png" || fileObject.ext == ".png") return true;
}
'프로그래밍 > Weekly I Learned' 카테고리의 다른 글
2023.09.25+ nodejs ejs 문법 (0) | 2023.09.25 |
---|---|
2023.09.23+ HTTP/HTTPS (0) | 2023.09.23 |
2023.09.19+ nexttick과 비동기 우선순위 (0) | 2023.09.19 |
2023.09.18+ nodeJS 개념과 특징 (0) | 2023.09.18 |
2023.09.17+ 서버 요청방식과 REST API (0) | 2023.09.18 |