ernest
Version:
Web framework for HTTP and HTTPS, using ExpressJS, Session, Mongo, Socket IO, Redis
147 lines (133 loc) • 2.02 kB
JavaScript
var fs = require('fs');
var targz = require('targz');
class Ernest_Files
{
constructor()
{
};
CreateFolder(src_namepath,callback)
{
if(!fs.existsSync(src_namepath))
{
fs.mkdir(src_namepath,function(e)
{
if(e)
{
callback(e);
}
else
{
callback(true);
}
});
}
else
{
callback(true);
};
};
DeleteFolder(src_namepath,callback)
{
deleteFolderRecursive(src_namepath);
callback();
};
RenameFolder(src_namepath,dst_namepath,callback)
{
fs.rename(src_namepath, dst_namepath, function(e)
{
if(e)
{
callback(e);
}
else
{
callback(true);
};
});
};
CopyFile(src_namepath,dst_namepath,callback)
{
copyFile(src_namepath, dst_namepath,function(r)
{
callback(r);
});
};
CopyFolder(src_namepath,dst_namepath,callback)
{
};
Compress_Folder(src_namepath,dst_namepath,callback)
{
targz.compress({
src: src_namepath,
dest: dst_namepath
}, function(err)
{
if(err)
{
callback(err);
}
else
{
callback("Done!");
}
});
};
Decompress_Folder(src_namepath,dst_namepath,callback)
{
targz.decompress({
src: src_namepath,
dest: dst_namepath
}, function(err)
{
if(err)
{
callback(err);
}
else
{
callback(true);
}
});
};
};
module.exports = Ernest_Files;
function deleteFolderRecursive (path)
{
if( fs.existsSync(path) )
{
fs.readdirSync(path).forEach(function(file,index)
{
var curPath = path + "/" + file;
if(fs.lstatSync(curPath).isDirectory())
{
deleteFolderRecursive(curPath);
}
else
{
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
function copyFile(src, dest,callback)
{
if (!fs.existsSync(src))
{
console.log("here1");
callback(true);
}
else
{
var data = fs.readFileSync(src, 'utf-8');
fs.writeFileSync(dest, data);
if (!fs.existsSync(dest))
{
callback(true);
}
else
{
callback(null);
};
};
};