我正在尝试将文件从一个目录复制到另一个目录。
但是由于我必须同时复制它们,所以我很高兴使用线程,这样我的软件在复制时不会冻结。
问题在于线程应该(手动)关闭,我不知道复制过程结束时我可以订阅哪个回调。
要完成复制任务,我正在使用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();
}