Java 使用包含小数的数字通配符检查文件夹是否存在
我试图编写代码来检查用户的PC上是否存在Acrobat xx.x文件夹,其中Java 使用包含小数的数字通配符检查文件夹是否存在,java,directory,wildcard,exists,Java,Directory,Wildcard,Exists,我试图编写代码来检查用户的PC上是否存在Acrobat xx.x文件夹,其中xx.x表示可能的Acrobat版本号,如Acrobat 10.0或Acrobat 11.1意思是我不知道xx.x将是什么。找到的答案似乎假设我知道通配符的值,但在我的情况下我不知道 目的是最终将.js文件写入目录..\Program files\Adobe\Acrobat xx.x\Acrobat\Javascripts 到目前为止,我确定是否安装了32/64位操作系统,并将程序文件路径设置为progFiles。假设已
xx.x
表示可能的Acrobat版本号,如Acrobat 10.0或Acrobat 11.1意思是我不知道xx.x将是什么。找到的答案似乎假设我知道通配符的值,但在我的情况下我不知道
目的是最终将.js文件写入目录..\Program files\Adobe\Acrobat xx.x\Acrobat\Javascripts
到目前为止,我确定是否安装了32/64位操作系统,并将程序文件路径设置为progFiles
。假设已安装Adobe,则需要使用此路径来确定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()){
// ...
}
有什么想法吗?谢谢您使用了
并查找与您的描述匹配的文件:
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());
}
您完全可以控制如何构建您的模式我已经读过了,似乎假设我知道什么是
XXX
。。。但在我的例子中,我正在寻找一个从0.1到99.9的动态数字。这看起来很有希望,我将很快进行测试并报告。谢谢你,我一定会好好学习的。非常感谢你