【问题标题】:Unexpectedly in 'private' folder when changing the working directory to a temp folder将工作目录更改为临时文件夹时意外出现在“私人”文件夹中
【发布时间】:2015-10-28 20:29:12
【问题描述】:

尝试使用 Node.js 创建工作目录并将其更改为临时文件夹时,我得到了一些意想不到的结果。

这里有一些代码:

var path = require('path')
var fse = require('fs-extra')
var TEST_DIR = path.join(os.tmpdir(), 'mydir') // creates temp path
fse.emptyDirSync(TEST_DIR) // creates the dirs recursively
process.chdir(TEST_DIR) // changes the CWD
assert.equal(process.cwd(), TEST_DIR) // assert that these are the same

这是返回的内容:

 AssertionError: '/private/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/mydir' == '/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/mydir'
  + expected - actual

  -/private/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/recursive-deps
  +/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/recursive-deps

由于某种原因,TEST_DIR 没有 private 前缀,而 CWD 以 private 开头。这里发生了什么?

【问题讨论】:

  • 嘿,你找到解决这个冲突的方法了吗?
  • @skymk 不,仍然不确定为什么会发生。

标签: javascript node.js operating-system temp


【解决方案1】:

我遇到了类似的问题。我怀疑那里有一个符号链接。您可以执行以下操作来获取实际路径:

var TEST_DIR = fs.realpathSync(path.join(os.tmpdir(), 'mydir'))

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2021-11-12
    • 2020-03-30
    • 1970-01-01
    相关资源
    最近更新 更多