Node FileSystem
filesystem 사용하기
- 사용자가 원하는 폴더 이름 생성 (video, captured, duplicated)
- 폴더 안에 있는 파일들을 다 돌면서 해당하는 mp4|mov = video, png|aae = captured,
IMG_E로 시작하는 파일은 원본 파일과 E 붙인 파일 같이 duplicated에 넣기
과제 1
파일 정리하기, 원하는 폴더를 생성 후 파일들 넣기
정리할 폴더의 파일 이름들 읽어오기
파일 이름에 조건 달아서 존재하면 폴더 생성 후
파일을 생성한 폴더에 이동 시키기
이동할 폴더는 생성되어 있어야 한단다
그러므로 다시 정리
- 폴더 먼저 생성
- test에 있는 파일들 불러오기 (읽어오기)
- 조건 달아서 조건에 맞게 파일들 정리 이동
일단 fs 가져오기
const fs = require("fs");
이 파일 시스템은 동기/비동기 관련 함수를 제공한다.
세가지 형태 존재
- rename (비동기, callback(error,data))
- renameSync 쓰지말자 (동기, try catch 필요, 에러 뜨면 다음으로 넘어가질 못함), 리턴값x
- promises.rename().then().catch(0), 비동기
===================================================
폴더 생성
const fs = require("fs");
// 풀더 생성
// 폴더 3개를 만들어야 하는데 이걸 배열로 만드는 법
const folderName = ['test/video', 'test/captured', 'test/duplicated'];
for (let i = 0; i < folderName.length; i++) {
try {
//만약에 이 폴더가 없으면 만들어줘
if (!fs.existsSync(folderName[i])) {
fs.mkdirSync(folderName[i])
}
} catch (err) {
console.error(err)
}
};
파일 목록 읽어오기
const dir = "./test"; // 파일 목록 읽어올 폴더
fs.readdir(dir, function (err, filelist) {
// fs모듈의 readdir함수를 사용해
// 첫번째 인자로 파일 목록을 읽을 폴더(dir)를 가져오고
// 콜백함수의 두번째 인자로 폴더(dir)의 파일목록(filelist)을 가져옴
console.log(filelist);
//배열을 foreach로 흩뿌려주기 (list를 string 으로)
filelist.forEach(function (element) {
console.log(element);
});
파일 확장자별로 찾기
경로 찾는 API (path)
const path = require('path')
여기서부터 남의 문법 봄.. 도대체 파일 이동은 어떻게 하는거래니?? rename이 답이더라
callback 에러가 자꾸 뜨는데 callback 함수를 정확히 모름 주의
https://www.youtube.com/watch?v=s1vpVCrT8f4
callback
내 함수를 나중에 다시 불러줘 (콜백함수)
비동기와 동기 타입이 존재한다.
hosting
모든 함수의 선언은 가장 먼저 호출됨 (hosting)
변수나 함수의 선언문을 유효범위의 최상단으로 끌어올려서 변수나 함수를 선언하기 이전에도 사용할 수 있도록 해주는 JavaScript의 특성
promise
https://www.youtube.com/watch?v=JB_yU6Oe2eE
callback 지옥 탈출구 promise (class)
제공자와 소비자로 나뉜다는걸 이해시키자
promise는 실행되자마자 바로 실행되니 주의하자. 불필요한 실행 주의
==============================================
여기서 발견한 문제들
- github와 vsc 연결
https://0ver-grow.tistory.com/888
https://velog.io/@blair-lee/VSCode%EC%97%90%EC%84%9C-Github-%EC%97%85%EB%A1%9C%EB%93%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95%EC%A7%B1%EC%89%AC%EC%9B%80%E3%85%8B%E3%85%8B
문제점 : 왜 자꾸 파일이.. readme 파일 때문에 그래? - 연결은 했는데 계정 변경 해줘야해
https://meaownworld.tistory.com/78
Git Bash에서 터미널 계정을 변경하는 방법
$ git config user.name
$ git config user.email
확인 후 변경
$ git config --global user.name 변경을 희망하는 계정
$ git config --global user.email 변경을 희망하는 이메일 - 에러 에러..
https://github.com/npm/npm/issues/13461
npm 캐시삭제, 멜로우 프로그램 삭제 다 해봄.. 결론은 되지를 아니해..
대체 뭐야
<해결법>
element 즉, 이동시킬 파일명이 빠졌다 (슬랙의 도움을 받다)
좀 제발, 에러가 뜨면 코드 먼저 분석해보자 - 자바스크립트 문법 공부해야함
- 엘리쌤꺼 따라하다 또 에러
process 인자 전달이 잘 안됨 argv[2] 전달x
경로를 잘 모르는 탓인가?
이건 launch.json을 바꾸면 된다는데 (여기서 인자 전달)
"program": "${workspaceFolder}//app2.js",
"args": ["test"],
"restart": true,
"runtimeExecutable": "nodemon"
아무래도 program 경로쪽이 문제인듯 싶다.
Author And Source
이 문제에 관하여(Node FileSystem), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yunso/Node-FileSystem저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)