【发布时间】:2018-02-04 23:15:15
【问题描述】:
我正在编写一个 Spring Maven Web 应用程序。 在我的代码中,我试图对位于类路径的文件和目录进行各种操作。
例如-在sn-p下面获取目录中的所有文件
{
URL resource = FileUtil.class.getResource(inboxLocation); //getting null when directory is empty
File directory = new File(resource.getPath());
Collection<File> files = FileUtils.listFiles(directory, TrueFileFilter.TRUE, null);
ArrayList<File> fileArray = new ArrayList<>(files);
return fileArray.subList(0, Math.min(batchSize, fileArray.size()));
}
当 inboxLocation(a directory) 已经有一个文件时,这可以正常工作。 但是当收件箱位置为空时,我的资源为空。
还有另一个功能,我尝试将文件移动到目录.. 当目录为空时,即使该方法也会失败。
我使用 IntelliJ 作为开发平台。
任何人都可以帮助如何处理这种情况.. 任何帮助表示赞赏
【问题讨论】:
-
IntelliJ 与您的问题无关。您应该考虑流,而不是文件。您的网络应用不应依赖于对文件系统的访问。
-
我同意.. 我这样做只是为了设置正确的测试环境
-
为什么必须使用
getResource来获取File对象? -
我的应用程序在某种程度上模拟了文件系统上的 SMTP。所以对于单元测试,我试图在类路径中使用临时文件夹。因此,为了通过类路径访问目录,我使用了 getResource... 这有助于从相对类路径和绝对位置读取......
标签: java spring maven intellij-idea