Копирование файлов из одного каталога в другой с помощью потоков - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь скопировать файлы из одного каталога в другой.

Но так как я должен копировать их одновременно, я подумал, что было бы неплохо использовать потоки, чтобы мое программное обеспечение не зависало при копировании.

Проблема в том, что потоки должны быть закрыты (вручную), и я не знаю, на какой обратный вызов я могу подписаться, чтобы узнать, когда завершится процесс копирования.

Для выполнения задачи копирования я использую библиотеку 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();
}
...