Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用包含小数的数字通配符检查文件夹是否存在_Java_Directory_Wildcard_Exists - Fatal编程技术网

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

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。假设已

我试图编写代码来检查用户的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
。假设已安装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的动态数字。这看起来很有希望,我将很快进行测试并报告。谢谢你,我一定会好好学习的。非常感谢你