java - 使用线程将文件从一个目录复制到另一个目录
问题描述
我正在尝试将文件从一个目录复制到另一个目录。
但由于我必须同时复制它们,我认为使用 Threads 可能会很好,因此我的软件在复制时不会冻结。
问题是应该关闭线程(手动),我不知道哪个是我可以订阅的回调,以了解复制过程何时结束。
为了完成复制任务,我使用 Java 库apache.commons.io.FileUtils
,主要使用函数copyFileToDirectory
我的代码看起来像:
//Thread to copy files from one place to another
public void CopyFileFromTo(String file, String fromDirectoryName, String destinationDirectoryName) throws IOException
{
//TODO: Establish when the thread has ended, no callbacks for CopyFileToDirectory? :(
//Copy from file to directory
Thread t = new Thread(new Runnable()
{
@Override
public void run()
{
Path src = Paths.get(fromDirectoryName+"\\"+file);
Path dest = Paths.get(destinationDirectoryName);
try {
FileUtils.copyFileToDirectory(src.toFile(),dest.toFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
t.start();
}