首页 > 解决方案 > 使用线程将文件从一个目录复制到另一个目录

问题描述

我正在尝试将文件从一个目录复制到另一个目录。

但由于我必须同时复制它们,我认为使用 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();
}

标签: javaapache-commonsjava-threadsfileutils

解决方案


推荐阅读