我正在使用此软件包node-glob
我面临的问题是,当我的路径中包含方括号[]
时,它没有给我任何文件。
这就是我的做法:
const glob = require('glob')
const path = 'E:/files/Example [Folder] 1'
const files = glob.sync(path + '/**/*', {
nobrace: true,
noext: true
})
括号()
或花括号{}
没问题,方括号[]
没问题。
我正在使用Windows。我该如何解决?请帮忙!
答案 0 :(得分:1)
括号[
和]
具有特殊含义,例如*
:
[...]
匹配一个字符范围,类似于RegExp范围。如果范围的第一个字符是!或^,则它匹配不在该范围内的任何字符。
因此,您需要使用\
const glob = require('glob')
const path = 'E:/files/Example \\[Folder\\] 1'
const files = glob.sync(path + '/**/*', {
nobrace: true,
noext: true
})
但是,在您的情况下,您最喜欢root
或cwd
。
cwd
当前要搜索的工作目录。默认为process.cwd()
。
const path = 'E:/files/Example [Folder] 1'
const files = glob.sync('**/*', {
nobrace: true,
noext: true,
cwd: path
})
root
将安装以/
开头的图案的位置。默认值为path.resolve(options.cwd, "/")
(在Unix系统上为/
,在Windows下为C:\
或类似的东西。)
const path = 'E:/files/Example [Folder] 1'
const files = glob.sync('/**/*', {
nobrace: true,
noext: true,
root: path
})