运行节点应用程序以读取目录fs.readdirSync('/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward');我一直得到 Stack: error properties: Object({ errno: -2, syscall: 'scandir', code: 'ENOENT', path: '/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward' }) Error: ENOENT: no such file or directory, scandir '/Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward'但我知道目录在那里ls -al /Users/edwardthompson/Dropbox/Apps/EvidentiaSoftware/records/thompson-hayward total 0 drwxr-xr-x@ 9 edwardthompson staff 288 Jan 18 2019 . drwxr-xr-x@ 6 edwardthompson staff 192 Aug 29 12:30 .. drwxr-xr-x@ 9 edwardthompson staff 288 Jan 18 2019 Births drwxr-xr-x@ 4 edwardthompson staff 128 Jan 18 2019 Census drwxr-xr-x@ 3 edwardthompson staff 96 Jan 18 2019 Deaths drwxr-xr-x@ 7 edwardthompson staff 224 Jan 18 2019 Marriages drwxr-xr-x@ 4 edwardthompson staff 128 Jan 18 2019 Military drwxr-xr-x@ 3 edwardthompson staff 96 Jan 18 2019 Other drwxr-xr-x@ 8 edwardthompson staff 256 Jan 18 2019 books不知道如何继续fs.lstat 给了我相同的 ENOENT 结果。Dropbox 目录有扩展属性(找不到 getfattr)我试过 /user/... 并没有什么区别
3 回答
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
const path = require('path');
const dirName = path.join(__dirname, '/ (../)x? /records/thompson-hayward');
(../)X?用 ../ 你需要多少次替换它
fs.readdirSync(dirName).forEach(folder => {
// code here
});
![?](http://img1.sycdn.imooc.com/54584cb50001e5b302200220-100-100.jpg)
江户川乱折腾
TA贡献1851条经验 获得超5个赞
您可以尝试使用path.resolve()
:
fs.readdirSync(path.resolve(‘Users’, ‘edwardthompson’, ‘Dropbox’, ‘Apps’, ‘EvidentiaSoftware’, ‘records’, ‘thompson-hayward’));
![?](http://img1.sycdn.imooc.com/5333a207000118af02200220-100-100.jpg)
宝慕林4294392
TA贡献2021条经验 获得超8个赞
一种简单的调试方法是尝试读取位于 /Users/{username} 中的不同目录。如果它有效,您可能需要查看 readdir 的符号链接问题。Dropbox 很可能会创建未正确解析的符号链接。
您可以使用fs.realpath()
或fs.realpathSync
获取您要查找的目录的真实路径,然后在真实路径上使用 readdir 。
添加回答
举报
0/150
提交
取消