Помните, что в некоторых ОС практически невозможно восстановить удаленный файл.
Когда вы говорите о файловых системах Windows, то с помощью некоторого кода JNI вы можете получить доступ к файловой системе и сбросить флаг удаления.
Очевидно, что если ваша программа удаляет файлы, вы можете переместить их в папку bin, из которой вы можете восстановить при необходимости.
Другим вариантом может быть написание некоторого сервиса, который отслеживает активность файловой системы и может копировать файлы в корзину для последующего восстановления. Читайте о jnotify .
По разным причинам в Windows отсутствует концепция папки, которая просто соответствует корзине.
Пожалуйста, обратитесь к https://bugs.java.com/bugdatabase/view_bug.do?bug_id=5080625
Правильный способ - использовать JNI для вызова Windows SHFileOperation API, устанавливая флаг FO_DELETE в структуре SHFILEOPSTRUCT.