我正在使用Java NIO来复制一些东西:
Files.copy(source, target);
Run Code Online (Sandbox Code Playgroud)
但我想让用户能够取消这个(例如,如果文件太大而且需要一段时间).
我该怎么做?
roi*_*oim 28
使用该选项ExtendedCopyOption.INTERRUPTIBLE.
注意: 此类可能无法在所有环境中公开提供.
基本上,您调用Files.copy(...)一个新线程,然后使用以下命令中断该线程Thread.interrupt():
Thread worker = new Thread() {
@Override
public void run() {
Files.copy(source, target, ExtendedCopyOption.INTERRUPTIBLE);
}
}
worker.start();
Run Code Online (Sandbox Code Playgroud)
然后取消:
worker.interrupt();
Run Code Online (Sandbox Code Playgroud)
请注意,这将引发一个FileSystemException.
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |