node.js - Node-Webkit:fs.readdirSync ("~")不起作用

标签 node.js filesystems node-webkit

摘自fs.readdirSync(path)的文档:同步readdir(3)。返回文件名数组,不包括 '.''..'.

我愿意:

console.log(require('fs').readdirSync('~'))

我收到未捕获错误:ENOENT,没有这样的文件或目录“~”

我是否做错了什么,或者 readdirSync 出于某种原因无法与 Node-Webkit 一起使用?我应该使用其他方式来读取主目录吗?

最佳答案

波形符 ~ 是一个 bash 函数,因此 Node 无法识别其含义。

在这种情况下,您需要在 readDirSync() 函数中使用主目录的绝对路径。

在Unix系统上,还可以使用环境变量$HOME,其中~是别名。

var path = process.env.HOME;

Windows 等效环境变量是 HOMEPATH。

编辑:

正如OP提到的,npm pakage path-extra提供了一个跨平台的homedir()方法

关于node.js - Node-Webkit:fs.readdirSync ("~")不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204935/

相关文章:

javascript - 使用Browserify编译NPM包

linux - ntfs 但不是 ext3 的数据完整性问题

c++ - 为什么我不能将 <experimental/filesystem> 与 g++ 4.9.2 一起使用?

c - 遍历进程的 `vm_area_struct`

mysql - 如何访问 RowDataPacket 对象

javascript - node-webkit 从外部源运行函数

javascript - node.js 不工作 Object.keys

Node.js 语法错误 : Unexpected end of input

ubuntu - 无法在模拟器中启动 Intel XDK 的调试器

javascript - 在 Node.js 中使用回调