node 파일 의 일괄 이름 을 바 꾸 는 방법 예제
수요
현재 아래 그림 파일
파일 이름 을 일괄 적 으로 수정 하고 접두사 이름 을 통일 하 며 색인 을 추가 해 야 합 니 다.수정 후 효과
가장 간단 한 인력 조작 은 파일 마다 이름 을 바 꾸 는 것 이지 만 DRY(Don't repeat yourself)원칙 에 따라 node 스 크 립 트 를 써 서 해결 하 는 것 입 니 다.
연구 하 다.
node 에서 파일 작업 을 하려 면 fs 모듈 을 알 아야 합 니 다.
fs 모듈 에는 동기 화 와 비동기 두 가지 방식 이 있 습 니 다.
파일 읽 기
//
fs.readFile('test.txt', 'utf-8' (err, data) => {
if (err) {
throw err;
}
console.log(data);
});
//
let data = fs.readFileSync('test.txt');
console.log(data);
비동기 읽 기 파일 매개 변수:파일 경로,인 코딩 방식,리 셋 함수파일 쓰기
fs.writeFile('test2.txt', 'this is text', { 'flag': 'w' }, err => {
if (err) {
throw err;
}
console.log('saved');
});
파일 인자 쓰기:대상 파일,내용 쓰기,쓰기 형식,리 셋 함수flag 기록 방식:
r:파일 읽 기
w:파일 쓰기
a:추가
디 렉 터 리 만 들 기
fs.mkdir('dir', (err) => {
if (err) {
throw err;
}
console.log('make dir success');
});
dir 새 디 렉 터 리 이름디 렉 터 리 읽 기
fs.readdir('dir',(err, files) => {
if (err) {
throw err;
}
console.log(files);
});
dir 는 디 렉 터 리 이름 을 읽 기 위해 files 는 디 렉 터 리 에 있 는 파일 이나 디 렉 터 리 이름 배열 입 니 다.파일 정보 가 져 오기
fs.stat('test.txt', (err, stats)=> {
console.log(stats.isFile()); //true
})
파일 정보 가 져 오기 후 stats 방법:방법.
설명 하 다.
stats.isFile()
파일 여부
stats.isDirectory()
디렉토리
stats.isBlockDevice()
블록 장치 여부
stats.isCharacterDevice()
문자 장치 여부
stats.isSymbolicLink()
소프트 링크 여부
stats.isFIFO()
UNIX FIFO 명령 파이프 인지 여부
stats.isSocket()
Socket 인지 여부
읽 기 흐름 생 성
let stream = fs.createReadStream('test.txt');
쓰기 흐름 만 들 기
let stream = fs.createWriteStreamr('test_copy.txt');
개발 하 다.개발 방향:
소스 디 렉 터 리 읽 기
복사 내용 이 파일 인지 아 닌 지 를 판단 합 니 다.
읽 기 흐름 만 들 기쓰기 흐름 만 들 기파 이 프 를 연결 하고 파일 내용 을 기록 합 니 다
let fs = require('fs'),
src = 'src',
dist = 'dist',
args = process.argv.slice(2),
filename = 'image',
index = 0;
//show help
if (args.length === 0 || args[0].match('--help')) {
console.log('--help
\t-src
\t-dist
\t-n
\t-i
');
return false;
}
args.forEach((item, i) => {
if (item.match('-src')) {
src = args[i + 1];
} else if (item.match('-dist')) {
dist = args[i + 1];
} else if (item.match('-n')) {
filename = args[i + 1];
} else if (item.match('-i')) {
index = args[i + 1];
}
});
fs.readdir(src, (err, files) => {
if (err) {
console.log(err);
} else {
fs.exists(dist, exist => {
if (exist) {
copyFile(files, src, dist, filename, index);
} else {
fs.mkdir(dist, () => {
copyFile(files, src, dist, filename, index);
})
}
});
}
});
function copyFile(files, src, dist, filename, index) {
files.forEach(n => {
let readStream,
writeStream,
arr = n.split('.'),
oldPath = src + '/' + n,
newPath = dist + '/' + filename + index + '.' + arr[arr.length - 1];
fs.stat(oldPath, (err, stats) => {
if (err) {
console.log(err);
} else if (stats.isFile()) {
readStream = fs.createReadStream(oldPath);
writeStream = fs.createWriteStream(newPath);
readStream.pipe(writeStream);
}
});
index++;
})
}
효과.총결산
node 는 다양한 모듈 을 제공 하여 우리 가 서로 다른 수 요 를 가 진 기능 개발 을 완성 하 는 데 도움 을 줄 수 있 습 니 다.자바 script 은 브 라 우 저 에 국한 되 지 않 고 스스로 스 크 립 트 를 작성 하 는 것 이 이 모듈 에 대한 이해 에 도움 이 되 고 업무 효율 도 향상 시 킬 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.