我试图检查给定目录位置是否存在文件。
File seacrhFile = new File("D:/input", contract.conf);
if (seacrhFile.exists()) {
returnFile = seacrhFile;
} else {
System.out.println("No such file exists");
}
reutrn returnFile;
这在D:/input
目录方案中有效,但如果我将目录位置更改为src/test/resources/input
文件夹,那么我将获得No such file exists
,尽管该文件存在。
答案 0 :(得分:1)
如果您想访问
的src /测试/资源/输入
你可能应该使用
System.getProperty("user.dir") + File.separator + "src/test/resources/input"
因为系统属性“user.dir”指向项目位置。
如果您只使用“src / test / resources / input”,您将获得提到的异常,因为文件对象不会在项目位置“启动”。所以你必须手动指定它。
然而,最好使用getResource-Method来检索项目中的不同资源,因为如果使用jar-File运行项目,则需要调整以使“user.dir”正常工作。
只是Classloader的一个基本示例:
ClassLoader.getSystemClassLoader().getResource("test/resources/input");
这将返回一个URL-Object,使用此对象可以使用...
获取File-ObjectURL filePath = ClassLoader.getSystemClassLoader().getResource("test/resources/input");
File file = new File( filePath.toURI() );
答案 1 :(得分:0)
删除src并再次尝试。