| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- var fs = require("./fileSystem").require(),
- pth = require("path");
-
- fs.existsSync = fs.existsSync || pth.existsSync;
- module.exports = function(/*String*/path) {
- var _path = path || "",
- _permissions = 0,
- _obj = newAttr(),
- _stat = null;
- function newAttr() {
- return {
- directory : false,
- readonly : false,
- hidden : false,
- executable : false,
- mtime : 0,
- atime : 0
- }
- }
- if (_path && fs.existsSync(_path)) {
- _stat = fs.statSync(_path);
- _obj.directory = _stat.isDirectory();
- _obj.mtime = _stat.mtime;
- _obj.atime = _stat.atime;
- _obj.executable = !!(1 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
- _obj.readonly = !!(2 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
- _obj.hidden = pth.basename(_path)[0] === ".";
- } else {
- console.warn("Invalid path: " + _path)
- }
- return {
- get directory () {
- return _obj.directory;
- },
- get readOnly () {
- return _obj.readonly;
- },
- get hidden () {
- return _obj.hidden;
- },
- get mtime () {
- return _obj.mtime;
- },
- get atime () {
- return _obj.atime;
- },
- get executable () {
- return _obj.executable;
- },
- decodeAttributes : function(val) {
- },
- encodeAttributes : function (val) {
- },
- toString : function() {
- return '{\n' +
- '\t"path" : "' + _path + ",\n" +
- '\t"isDirectory" : ' + _obj.directory + ",\n" +
- '\t"isReadOnly" : ' + _obj.readonly + ",\n" +
- '\t"isHidden" : ' + _obj.hidden + ",\n" +
- '\t"isExecutable" : ' + _obj.executable + ",\n" +
- '\t"mTime" : ' + _obj.mtime + "\n" +
- '\t"aTime" : ' + _obj.atime + "\n" +
- '}';
- }
- }
- };
|