文件存在于Java中?

时间:2012-07-24 09:35:21

标签: java file

我试图检查给定目录位置是否存在文件。

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,尽管该文件存在。

2 个答案:

答案 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-Object
URL filePath =  ClassLoader.getSystemClassLoader().getResource("test/resources/input");
File file = new File( filePath.toURI() );

答案 1 :(得分:0)

删除src并再次尝试。