首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Node.js中使用chmod?

如何在Node.js中使用chmod?
EN

Stack Overflow用户
提问于 2012-01-06 10:46:26
回答 2查看 51.4K关注 0票数 55

如何在Node.js中使用chmod?

fs中有一种方法,它应该这样做,但我不知道它作为第二个参数所用的是什么。

fs.chmod(路径、模式、回调) 异步chmod(2)。除了可能的异常之外,不给完成回调提供任何参数。 fs.chmodSync(路径,模式) 同步chmod(2)。

(来自Node.js文档)

如果我做了这样的事

代码语言:javascript
运行
复制
fs.chmodSync('test', 0755);

什么都没有发生(文件没有更改为该模式)。

代码语言:javascript
运行
复制
fs.chmodSync('test', '+x');

也不管用。

我在修一台Windows机器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-06 11:03:31

根据它在第508行的源代码/lib/fs.js

代码语言:javascript
运行
复制
fs.chmodSync = function(path, mode) {
  return binding.chmod(pathModule._makeLong(path), modeNum(mode));
};

第203行:

代码语言:javascript
运行
复制
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;
      }
  }
}

它需要八进制数字或字符串。

例如:

代码语言:javascript
运行
复制
fs.chmodSync('test', 0755);
fs.chmodSync('test', '755');

由于文件模式只存在于*nix机器上,所以在您的情况下它不起作用。

票数 65
EN

Stack Overflow用户

发布于 2019-03-14 03:21:11

指定八进制的正确方法如下:

代码语言:javascript
运行
复制
fs.chmodSync('test', 0o755); 

请参考文件模式这里

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8756639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档