目次
Kotlin で、 ドットファイル含めてディレクトリを再帰的にコピーする方法です。 コマンドでドットファイル含めて再帰的にディレクトリをコピーしたかったのですが、うまくできなかったのでKotlinを使ったという経緯です。
環境
- Kotlin 1.1.2
- OS: Ubuntu
ディレクトリごとコピーする場合のコード
java.io.File
を使うので Java と本質的に変わりません。
1 2 3 4 5 |
import java.io.File val s = File("source_directory") val d = File("destination_directory") s.copyRecursively(d, true) |
補足
copyRecursively
の第2引数は、コピー先にファイルが存在した場合に上書きするか否かを表します。
あるディレクトリに含まれるすべてのファイルを別のディレクトリにコピーする方法
1 2 3 4 5 |
import java.io.File val s = File("source_directory") val d = File("destination_directory") s.listFiles().forEach { it.copyRecursively(File(File(d.absolutePath).parent + '/' + it.name)) } |
copyRecursively
の第一引数が複雑なのは、 d
の定義のときに相対パスを使った場合を考慮しているからです。