我正在使用Spring Boot和Spring内容。我想将所有图片和视频存储在一个目录中,但是每次我重新运行应用程序时,我的代码都会继续创建不同的目录
我有这样的bean,当我再次运行该应用程序时,它显示空指针,因为该目录已经存在,但我希望它仅创建一次并且每个文件都存储在其中
every time i run this tries to create the dir again
@Bean
File filesystemRoot() {
try {
return Files.createDirectory(Paths.get("/tmp/photo_video_myram")).toFile();
} catch (IOException io) {}
return null;
}
@Bean
FileSystemResourceLoader fileSystemResourceLoader() {
return new FileSystemResourceLoader(filesystemRoot().getAbsolutePath());
}
答案 0 :(得分:2)
您可以先使用isDirectory()方法检查目录是否已存在。如果不存在,请创建一个新的。
答案 1 :(得分:2)
一种解决方案是检查目录是否存在:
@Bean
File filesystemRoot() {
File tmpDir = new File("tmp/photo_video_myram");
if (!tmpDir.isDirectory()) {
try {
return Files.createDirectory(tmpDir.toPath()).toFile();
} catch (IOException e) {
e.printStackTrace();
}
}
return tmpDir;
}
答案 2 :(得分:2)
同时,当您使用Spring Boot并相应地使用spring-content-fs-boot-starter时,还有另一种方法可以对此进行归档。 根据{{3}}上的文档,只需添加
spring.content.fs.filesystemRoot=/tmp/photo_video_myram
到您的application.properties
文件。