首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-glob找不到存在且与最小匹配匹配的文件(Windows 10)

node-glob找不到存在且与最小匹配匹配的文件(Windows 10)
EN

Stack Overflow用户
提问于 2019-05-05 02:01:20
回答 1查看 166关注 0票数 0

我正在尝试编写一个glob模式,它将搜索intellij二进制文件(大致),但不会在C:\Windows内部搜索,因为那里可能没有任何文件。我添加了一些最小匹配示例,它们似乎可以按预期工作,但glob.sync找不到该文件。任何帮助都是非常感谢的!

代码语言:javascript
复制
var minimatch = require("minimatch")
var globSync = require('glob').sync

const FILE_THAT_EXISTS = 'C:/Program Files/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe';

const globPattern = `C:/!(Windows)/JetBrains/IntelliJ*/bin/idea64.exe`;

console.log(minimatch("C:/Program Files/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Program Files (x86)/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Windows/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Software/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch(FILE_THAT_EXISTS, globPattern));

console.log('\n')

const globResults = globSync(globPattern, {})

console.log(`glob results:`)
console.log(globResults);

console.log('\n')

// Verify that file actually exists:

var fs = require('fs');

try {
    fs.accessSync(FILE_THAT_EXISTS)
    console.log('file found');
} catch (e) {
    console.log('file NOT found')
    console.error(e)
}

此脚本的输出:

代码语言:javascript
复制
true
true
false
true
true


glob results:
[]


file found

当然,我希望该可执行文件列在globResults数组中。

EN

回答 1

Stack Overflow用户

发布于 2019-08-21 21:50:03

这就是我想要的:

代码语言:javascript
复制
var globSync = require('glob').sync

const globPattern = `/!(windows)/jetbrains/intellij*/bin/idea64.exe`;

const globResults = globSync(globPattern, { nocase: true, strict: false,  silent: true })

console.log(`glob results:`, globResults)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55985408

复制
相关文章

相似问题

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