Я все еще относительно новичок в java, но у меня есть опыт в сценариях, таких как DOS, Windows и Bash. сегодня я бы хотел, чтобы EASILY рекурсивно копировал содержимое каталога (файлы и каталоги) из sourceDir в destinationDir из моего приложения Java CLI.
Я искал сеть вверх и вниз и нашел PLENTY из «решений» для этого, используя Оракулы и/или Apache FileUtils и т. Д. Но все они требуют своего рода «изобретать колесо» и представляют собой 20+ строк кода, обрабатывая каждый и каждый файл и dir отдельно с большой возможностью для чего-то, что в командной строке оболочки выполняется с помощью SINGLE LINE.
Для обоих на Windows, и Linux, его обычно не более, чем просто ...
cp -a "$sourceDir"/* "$targetDir" # on linux
или
xcopy /s /e %srcdir%\* %trgtdir% # on windows
Но я не смог найти готовую библиотеку или инструмент для Java, что делает просто так, как xcopy/robocopy или cp на bash, не добавляя мой новый класс «copy» в мое приложение: /.
Есть ли веская причина, почему я должен «изобретать колесо» и не просто выполнять какое-то «внешнее выполнение оболочки», чтобы вызвать один из этих инструментов командной строки, чтобы выполнить работу в пределах 2-3 строк Код?
Спасибо за любые советы и пояснения. Axel
Вы можете использовать библиотеку Apache Commons: [ 'FileUtils.copyDirectory()'] (https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils .html # copyDirectory (java.io.File,% 20java.io.File)). – Phylogenesis
Я думаю, что кто-то меня неправильно понял. если для JAVA существует «однострочное» решение, это будет то, что я ищу, но еще не найдено. - все, что я нашел, требует МНОГО больше, чтобы добавить к моему коду, чтобы выполнить работу. поэтому я был бы счастлив, если бы вы могли показать мне, что «один лайнер» выполнит эту работу с помощью java. - Кстати ... Apache FileUtils, кажется, НЕ делает работу, как просили. они копируют каталог в директорию. но НЕ содержание этого каталога в директорию. также они, похоже, не поддерживают рекурсию и глобусы без достаточной дополнительной подготовки и фильтрации. :/ –
@AxelWerner, пожалуйста, посмотрите на мой ответ .... вы неправильно понимаете, что означает 'cp' .... –