메인 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 |
댓글