Hej. Dodałem możliwość umieszczania zdjęć na stronie. Zdjęcia dodawane są w formularzu razem z innymi informacjami i dane te są przypisane do pewnego obiektu domenowego. Zaimplementowałem usuwanie obiektu z bazy, ale nie wiem, jak usunąć zdjęcia razem z obiektem. Spójrzcie:
@RequestMapping(value="/deleteDog/{id}", method = RequestMethod.GET)
public String deleteDog(Model model, @PathVariable("id") Long id) {
dogService.deleteDog(id);
storageService.delete(id);
model.addAttribute("dogDeleted", "Pies został usunięty z bazy!");
return "home";
}
To jest kontroler, który usuwa obiekt na podstawie dostarczonego id obiektu, a następnie obiekt storageService powinien usunąć zdjęcie na podstawie id. Tak wygląda metoda usuwająca zdjęcie:
public void delete(Long id) {
List<Dog> allDogs = dogService.allDogs();
for (Dog dog : allDogs) {
if (dog.getId().equals(id)) {
Path rooLocation2 = Paths.get(rootLocation + dog.getName() + dog.getOwnersName() + ".jpg");
try {
Files.delete(rooLocation2);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Niestety nie działa i zdjęcie istnieje nadal. Pod rootLocation mam zapisaną ścieżkę komputera, gdzie zapisywane są zdjęcia. Przy zapisywaniu zdjęć, w ten sposób ustalam ich nazwę:
String filename = dog.getName() + dog.getOwnersName() + ".jpg";
A tak wygląda ścieżka zapisu zdjęć:
private String location = "C:/Users/Tomek/IdeaProjects/dog-calendar-spring/src/main/resources/static/";
Proszę o sugestie, z jakiej biblioteki skorzystać, żeby usunąć plik z komputera.
Moje podejrzenia wyglądają tak:
public static void delete(Path path)
throws IOException
usuwa wszystko, co jest pod daną ścieżką. Jednak ja podałem ścieżkę na wzór: C:/Users/Tomek/IdeaProjects/dog-calendar-spring/src/main/resources/static/*zmienna*.jpg
a docelowo powinien być folder, a nie plik jpg. Mam rację? :P