gpt4 book ai didi

java - 使用包含小数的数字通配符检查文件夹是否存在

转载 作者:行者123 更新时间:2023-11-30 07:43:56 28 4
gpt4 key购买 nike

我正在尝试编写代码来检查用户的电脑上是否存在 Acrobat xx.x 文件夹,其中 xx.x 代表潜在的 Acrobat 版本号,例如 Acrobat 10.0 或 Acrobat 11.1. 意思是我不知道 xx.x 是什么。找到答案here似乎假设我知道通配符的值,但在我的例子中我不知道。

目的是最终将.js文件写入目录...\Program Files\Adobe\Acrobat xx.x\Acrobat\Javascripts

到目前为止,我确定了是否安装了 32/64 位操作系统,并将 Program Files 路径设置为 progFiles。假设安装了 Adob​​e,我需要使用此路径来确定 Acrobat xx.x 是否是子文件夹,例如:

folderToFind = new File(progFiles + "\\Adobe\\"+"\\Acrobat 11.1");

其中11.1可以采用0.1到99.9之间的任何数字的形式。然后我可以通过以下方式识别它的存在:

if (folderToFind.exists())
{
System.out.println("Acrobat folder found");
}

一个明显的方法是创建一个循环,检查每种可能性是否存在。这似乎是多余和不必要的。我希望有一种更有效的方法,例如:

  if (progFiles + "\\Adobe\\"+"\\Acrobat **.*\\Acrobat\\Javascripts".exists()){
// ...
}

有什么想法吗?谢谢

最佳答案

您使用 FileFilter

并查找与您的描述相符的文件:Acrobat\d{1,2}\.\d

示例:

    File dir = new File(path);
File[] matchingFiles = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
String regex = "Acrobat \\d{1,2}\\.\\d";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(pathname.getName());
return m.matches();
}
});
for(File f : matchingFiles) {
System.out.println(f.getName());
}

您可以完全控制如何构建模式

关于java - 使用包含小数的数字通配符检查文件夹是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34210360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com