Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop_Io_Fileutils - Fatal编程技术网

Java 参数';目录';不是作为目录的参数的目录

Java 参数';目录';不是作为目录的参数的目录,java,oop,io,fileutils,Java,Oop,Io,Fileutils,我得到了一个奇怪的错误,我提供给一个方法的参数抱怨它不是一个目录,但实际上它是一个包含文件的目录…我不明白怎么了 顶级: public static File mainSchemaFile = new File("src/test/resources/1040.xsd"); public static File contentDirectory = new File("src/test/resources/input"); public static File outputDirectory =

我得到了一个奇怪的错误,我提供给一个方法的参数抱怨它不是一个目录,但实际上它是一个包含文件的目录…我不明白怎么了

顶级:

public static File mainSchemaFile = new File("src/test/resources/1040.xsd");
public static File contentDirectory = new File("src/test/resources/input");
public static File outputDirectory = new File("src/test/resources/output");


DecisionTableBuilder builder =constructor.newInstance(log, contentDirectory, outputDirectory);

// Here is where the error occurs
builder.compile(mainSchemaFile);
public class DecisionTableBuilder {

   public void compiler(File schemaFile) {
      ...
      // It's complaining about contentDirectory, it goes to FileUtils class for this
      Collection<File> flowchartFiles = FileUtils.listFiles(contentDirectory, mapExtension, true);
      ...
   }
}
public class FileUtils {

    private static void validateListFilesParameters(File directory, IOFileFilter fileFilter) {
        if (!directory.isDirectory()) {
            throw new IllegalArgumentException("Parameter 'directory' is not a directory");
        }
        if (fileFilter == null) {
            throw new NullPointerException("Parameter 'fileFilter' is null");
        }
    }

}
我正在使用的类:

public static File mainSchemaFile = new File("src/test/resources/1040.xsd");
public static File contentDirectory = new File("src/test/resources/input");
public static File outputDirectory = new File("src/test/resources/output");


DecisionTableBuilder builder =constructor.newInstance(log, contentDirectory, outputDirectory);

// Here is where the error occurs
builder.compile(mainSchemaFile);
public class DecisionTableBuilder {

   public void compiler(File schemaFile) {
      ...
      // It's complaining about contentDirectory, it goes to FileUtils class for this
      Collection<File> flowchartFiles = FileUtils.listFiles(contentDirectory, mapExtension, true);
      ...
   }
}
public class FileUtils {

    private static void validateListFilesParameters(File directory, IOFileFilter fileFilter) {
        if (!directory.isDirectory()) {
            throw new IllegalArgumentException("Parameter 'directory' is not a directory");
        }
        if (fileFilter == null) {
            throw new NullPointerException("Parameter 'fileFilter' is null");
        }
    }

}
输出:参数“目录”不是目录

这是我得到的错误输出

任何人都知道这里发生了什么我非常困惑…任何帮助都将不胜感激

编辑:

public static File mainSchemaFile = new File("src/test/resources/1040.xsd");
public static File contentDirectory = new File("src/test/resources/input");
public static File outputDirectory = new File("src/test/resources/output");


DecisionTableBuilder builder =constructor.newInstance(log, contentDirectory, outputDirectory);

// Here is where the error occurs
builder.compile(mainSchemaFile);
public class DecisionTableBuilder {

   public void compiler(File schemaFile) {
      ...
      // It's complaining about contentDirectory, it goes to FileUtils class for this
      Collection<File> flowchartFiles = FileUtils.listFiles(contentDirectory, mapExtension, true);
      ...
   }
}
public class FileUtils {

    private static void validateListFilesParameters(File directory, IOFileFilter fileFilter) {
        if (!directory.isDirectory()) {
            throw new IllegalArgumentException("Parameter 'directory' is not a directory");
        }
        if (fileFilter == null) {
            throw new NullPointerException("Parameter 'fileFilter' is null");
        }
    }

}
在我的顶层中,我添加了以下行:

if(contentDirectory.isDirectory()) {
    System.out.println("Content Directory: "+contentDirectory);
}

Output: src/test/resources/input

您指向的是文件,而不是
mainSchemaFile
变量中的目录。减少包含
1040.xsd
的文件夹的路径-它应该可以解决问题。

File.isDirectory()
javadoc中,
如果且仅当此抽象路径名表示的文件存在并且是一个目录,则为true;否则为false
。因为您使用的是相对路径,所以它可能解析为不存在的位置。可以打印路径并查看它是否存在吗?在
FileUtils.validateListFileParameters
中添加这一行“System.out.println(directory.getCanonicalPath());”在
之前,如果(!directory.isDirectory())
并查看它指向何处。@srkavin是的,我在上面的“编辑”下编辑了我的问题,它会打印出相对路径,但我不明白这怎么会是个问题。@Shahzeb我使用FileUtils作为maven依赖项,我将无法将代码添加到它中,在那里放置一个调试点,当它停在那里时,在eclipse中观看。它失败的唯一原因是在这一点上不是一个目录。