【要注意】JavaのFileクラスでrenameToメソッドによるファイル移動

Javaでファイル操作をするときの一番基本的なクラスであるFileクラスには、File操作のためのメソッドが数多く用意されています。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html

その中に、renameToというファイル移動(パスの変更)を行うためのメソッドがあります。

しかし、このrenameToというメソッドを使うには注意が必要です。APIリファレンスはこのように書かれています。

「ファイルシステム間で移動できないことがある」とさらっと書いてありますが、私はこれを見落としており、renameToの戻り値がfalseになってしまいました。Linuxでいうところのパーティションをまたがっていたり、AIXのファイルシステムをまたぐ場合のファイル移動はこのメソッドを使うことはできません。

同じく、APIリファレンスに書いてありますが、Filesクラスにはプラットフォームに依存しないmoveメソッドがあります。が、これはJava 7以降のことなので、Java 6はこんな感じでファイルをコピーして、削除する処理を自作しないといけないです。

今の現場が未だにJava 6を使っており、こんなものまで自分で実装しなくてはならないとは、、、早くバージョンアップしないだろうか。。。