/ / nodejs fs manipulácia s režimom v atribútoch iba pre čítanie okien - node.js, ntfs, fs, atribúty súborov

nodejs fs manipulácia s režimom v okne atribút iba na čítanie - node.js, ntfs, fs, atribúty súborov

Som novinka v NodeJS a mám ťažké časydešifrovať hodnotu režimu a určiť, ako zmeniť režim, ak chcete odstrániť atribút, ako napríklad len na čítanie. Tu je návod, ako som zistil, že tento priečinok má režim 16822. Ako môžem určiť, čo 16822 znamená v oknách a ako môžem zmeniť režim tak, aby nemal len attr pre čítanie?

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]);
}
}
}
});

odpovede:

2 pre odpoveď č. 1

Verím, že 0x92 (146) je nesprávny. 0x92 skontroluje "iný" zápisový bit a bit "execute group". Malo by to byť 0x222 (546).

Nastavenia prístupu k súborom rôznych súborov sú:

4000: skrytý súbor

2000: systémový súbor

1000: Archívny bit

0400: Individuálne čítanie

0200: Individuálny zápis

0100: Individuálne vykonanie

0040: Čítanie skupiny

0020: Skupina napíše

0010: Skupina vykoná

0004: Ďalšie čítanie

0002: Iný zápis

0001: Iné vykonať

Ak 1 predstavuje vykonanie, 2 predstavuje zápis a 4 znamená čítanie

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


0 pre odpoveď č. 2

Našiel som riešenie. V zásade bol rozdiel medzi súborom s čítanou a bezčítanou hodnotou 146. Pri kontrole bitov som zistil, že tento rozdiel sa zhoduje s hodnotou režimu (128, 16 a 2). Toto bolo moje riešenie: github vydanie s readonly

Taktiež došlo k zlepšeniu, keď som preniesol prúd na funkciu, ktorá mi umožňuje transformovať súbor a potom ho preniesť pomocou streamu udalostí:

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);
};