Ответ 1
Используйте опцию ExtendedCopyOption.INTERRUPTIBLE
.
Примечание: Этот класс не может быть общедоступным во всех средах.
В принципе, вы вызываете Files.copy(...)
в новый поток, а затем прерываете этот поток с помощью Thread.interrupt()
:
Thread worker = new Thread() {
@Override
public void run() {
Files.copy(source, target, ExtendedCopyOption.INTERRUPTIBLE);
}
}
worker.start();
а затем отменить:
worker.interrupt();
Обратите внимание, что это повысит значение FileSystemException
.