본문 바로가기
공부/프로그래밍

nodejs - 폴더 만들기(배열로 넣으면 하위폴더까지 생성함)

by demonic_ 2015. 7. 6.
반응형

메인 function 은 arryCreateFolder  이다

/*

*    파라미터는 총 2개를 받는다

*    첫번째는 기준이 되는 폴더이고, 2번쨰는 생성할 폴더이름을 배열로 넣는다

*    for 문이 돌면서 기준이 되는 폴더를 기점으로 하위계층으로 폴더를 생성해준다.

*/



var fs =require('fs')

var path =  require('path');

require('date-utils');


var imgFolder = path.resolve(__dirname + '/images/');

var postFolder = path.resolve(__dirname + '/images/post');



var dt = new Date();

var year = dt.toFormat('YYYY'); // 현재 월 변수에 저장

var month = dt.toFormat('YYYY-MM'); // 현재 월 변수에 저장

var folderArr = [year, month];



arryCreateFolder(postFolder, folderArr);        // 이런식으로 사용하면 된다.



/* 배열로 된 폴더명을 받아서 하위폴더를 구성해준다. -- main */

function arryCreateFolder(imgFolder, folderArr){

var nFolder = imgFolder;

for( folder in folderArr ){

var status = searchFolder(nFolder, folderArr[folder]);

if(!status){

var createStatus = createFolder(nFolder, folderArr[folder]);

nFolder = path.join(nFolder, folderArr[folder]);

}

}

}


// 폴더를 생성하는 역할을 맡는다.

function createFolder(folder, createFolder){

var tgFolder = path.join(folder,createFolder);

console.log("createFolder ==> " + tgFolder);

fs.mkdir(tgFolder, 0666, function(err){

if(err){

return false;

}else{

console.log('create newDir');

return true;

}

});

}


// 폴더가 존재하는지 찾는다. 있다면 폴더위치를 리턴하고, 없다면 false를 리턴한다.

function searchFolder(folder, srhFolder){

var rtnFolder;

fs.readdir(folder, function (err, files) {

if(err) throw err;

files.forEach(function(file){

if(file == srhFolder){

fs.stat(path.join(folder, file), function(err, stats){

if(stats.isDirectory()){

return path.join(folder, file);

}

});

}

});

});

return false;

}









반응형

'공부 > 프로그래밍' 카테고리의 다른 글

bower 은 무엇인가?  (0) 2015.07.09
bower 를 사용하기 위해. -msysgit 설정-  (0) 2015.07.09
jquery 업로드시 프로그래스바 적용하기.  (0) 2015.07.09
[JQuery API] masonry  (2) 2015.06.30
Node.js MariaDB 랑 연동하기  (13) 2015.06.23

댓글