nodejs fs模式操作在windows只读属性中

我是NodeJS的新手,我很难解密模式值,并找出如何改变模式来删除像只读属性。 这里是我如何find这个文件夹有一个16822的模式。我如何确定什么16822意味着在Windows中,然后如何更改模式,使它不具有只读ATTR?

fs.mkdir('./build'); fs.stat('./build', function(err, stats){ if(stats.isDirectory()){ console.log('Its a dir'); for(var i in stats){ if('function' !== typeof stats[i]){ console.log(i + '\t= ' + stats[i]); } } } }); 

我相信0x92(146)是不正确的。 0x92正在检查“其他”写入位和“组”执行位。 它应该是0x222(546)。

文件访问各种文件的设置是:

4000:隐藏文件

2000:系统文件

1000:存档位

0400:个人阅读

0200:个人写作

0100:个人执行

0040:分组阅读

0020:分组写入

0010:组执行

0004:其他阅读

0002:其他写

0001:其他执行

其中1表示执行, 2表示写 ,4表示读

http://www.codingdefined.com/2014/10/alter-file-permissions-in-nodejs.html

我find了解决scheme。 基本上只读和不带的文件之间的位差是146的值。检查这些位,我发现这个差值在模式值(128,16和2)中相匹配。 这是我的解决scheme: 只读的github问题

在我将stream传递给一个允许我转换文件的函数中,然后使用event-stream传递它的同时,也做了一个改进:

 function removeReadonly(){ function transform(file, cb){ if((file.stat.mode & 146) == 0){ file.stat.mode = file.stat.mode | 146; } cb(null,file); }; return require('event-stream').map(transform); };