Как отменить Files.copy() в Java? Я использую Java NIO для копирования: Files.copy(source, target); Но я хочу дать пользователям возможность отменить это (например, если файл слишком большой, и он занимает некоторое время). Как мне это сделать? Ответ 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.
Ответ 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.