Comment utiliser chmod avec Node.js?
Il y a une méthode dans le package fs
, qui devrait le faire, mais je ne sais pas ce qu'elle prend comme deuxième argument.
fs.chmod (chemin, mode, [rappel])
Chmod asynchrone (2). Aucun argument autre qu'une exception possible n'est donné au rappel de fin.
fs.chmodSync (chemin, mode)
Chmod synchrone (2).
(à partir de la documentation Node.js )
Si je fais quelque chose comme
fs.chmodSync('test', 0755);
rien ne se passe (le fichier n'est pas modifié dans ce mode).
fs.chmodSync('test', '+x');
ne fonctionne pas non plus.
Je travaille sur une machine Windows btw.
selon son code source /lib/fs.js
à la ligne 508
fs.chmodSync = function(path, mode) {
return binding.chmod(pathModule._makeLong(path), modeNum(mode));
};
et ligne 203:
function modeNum(m, def) {
switch (typeof m) {
case 'number': return m;
case 'string': return parseInt(m, 8);
default:
if (def) {
return modeNum(def);
} else {
return undefined;
}
}
}
il faut soit un nombre octal soit une chaîne
par exemple.
fs.chmodSync('test', 0755);
fs.chmodSync('test', '755');
Cela ne fonctionne pas dans votre cas car les modes de fichier existent uniquement sur les machines * nix.
La manière correcte de spécifier Octal est la suivante:
fs.chmodSync('test', 0o755);
Reportez-vous aux modes de fichier ici