Я столкнулся с проблемой, но пока не могу ее решить.Позвольте мне поделиться тем, что я сделал до сих пор.Я пытался удалить файл, используя java.nio.file
пакеты.И ниже мой код.
// directory will be dynamically generated.
String directory = fileDirectory+ "//" + fileName;
Path path = Paths.get(directory);
if (Files.exists(path)) {
Files.delete(path);
}
Я правильно сгенерировал путь.Но когда Files.exists(path)
называет это return false
.Поэтому файл не удаляется.Но если я сгенерировал directory string
жестко запрограммированным, то он отлично работает.
// hard-coded directory works perfectly.
String directory = "C://opt//tomcat//webapps//resources//images//sprite.jpg";
Я также попробовал другой метод Files.deleteIfExists(path);
.Которые проверяют наличие файла и удаляют файл.
Другие пакеты org.apache.commons.io.FileUtils
и java.io.File
пытались.Но не могу решить проблему.
Примечание: Мое приложение в spring-boot
.И я прочитал каталог из файла application.properties
как для сохранения изображений, так и для удаления изображений.
РЕДАКТИРОВАТЬ:
загрузка файла Я имею в виду сохранить в каталоготлично работает.Но удаление файла не работает.
application.properties
image.root.dir=images
image.root.save.dir=C:/opt/tomcat/webapps/resources/
в файле реализации
@Value("${image.root.dir}")
private String UPLOADED_FOLDER;
@Value("${image.root.save.dir}")
private String saveDir;
String directory = saveDir + UPLOADED_FOLDER + "/" + fileName;
сохранить файл в каталоге
String directory = saveDir + UPLOADED_FOLDER + "/";
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(directory);
if (!Files.exists(path)) {
Files.createDirectories(path);
}
path = Paths.get(directory, file.getOriginalFilename());
Files.write(path, bytes);
} catch (IOException e) {
logger.error("save image into directory : " + e);
}