Почему в этой строчке Files.copy(paths, target); используется именно paths? А не sourceDirectory ? В конструктор метода принимает два пути, со вторым разобрался почему так. А вот первый путь так и не понял. Это же должно быть директорией. for (Path paths : files) { if (Files.isRegularFile(paths)) { Path target = targetDirectory.resolve(paths.getFileName()); Files.copy(paths, target); } А в этой конструкции paths проходит через условие в if и получается может быть только файлом. Этот момент я так и не понял.