web-dev-qa-db-ja.com

Node.jsでchmodを使用する方法

Node.jsでchmodを使用するにはどうすればよいですか?

パッケージfsにはメソッドがあり、これを行う必要がありますが、2番目の引数として何が必要かわかりません。

fs.chmod(path、mode、[callback])

非同期chmod(2)。可能性のある例外以外の引数は完了コールバックに与えられません。

fs.chmodSync(path、mode)

同期chmod(2)。

Node.jsドキュメント から)

私が何かをするなら

fs.chmodSync('test', 0755);

何も起こりません(ファイルはそのモードに変更されません)。

fs.chmodSync('test', '+x');

動作しません。

私はWindowsマシンで作業しています。

39
pvorb

ソースコードに応じて /lib/fs.js 508行目

fs.chmodSync = function(path, mode) {
  return binding.chmod(pathModule._makeLong(path), modeNum(mode));
};

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

8進数または文字列を受け取ります

例えば.

fs.chmodSync('test', 0755);
fs.chmodSync('test', '755');

ファイルモードは* nixマシンにのみ存在するため、これは機能しません。

53
qiao

Octalを指定する正しい方法は次のとおりです。

fs.chmodSync('test', 0o755); 

ここでファイルモードを参照してください

https://nodejs.org/api/fs.html

3
nesty