どんな名前の変更(移動)ファイルにJDK7?
質問
いてはちょっとした混乱すべてのこれらの新しいファイルI/Oの授業にJDK7.
ということかしてい Path
い名前の変更、ファイルが良いと言えます。かを指定します新しい名前がま Path
ですか?
Path p = /* path to /home/me/file123 */;
Path name = p.getName(); /* gives me file123 */
name.moveTo(/* what now? */); /* how to rename file123 to file456? */
注意:が必要なのはなぜ JDK7?の取り扱い シンボリックリンク!
問題は:していないファイル名と場所に知られています。では、どうしが必要であ 安全 方法(例外的な側面に影響するための機能を備えている。新しい名前-パスの一部の古い名前。
Path newName(Path oldName, String newNameString){
/* magic */
}
解決
お持ちのpath文字列を作成する必要がありますパスのインスタンス.これまでに、getPath方法では解決します。こちらは方法:
Path dir = oldFile.getParent();
Path fn = oldFile.getFileSystem().getPath(newNameString);
Path target = (dir == null) ? fn : dir.resolve(fn);
oldFile.moveTo(target);
るので注意されているかどうかを確認し親がnullの場合うソリューションになる
他のヒント
にJDK7, ファイルです。move() を提供短く簡潔な構文ファイル名を変更したい:
Path newName(Path oldName, String newNameString) {
return Files.move(oldName, oldName.resolveSibling(newNameString));
}
第ちへのパスを新しいファイル名を使用 ます。resolveSibling() 満足頂ける事まちがいなしの利用 ファイルです。move() 実行した.
OKるようにしても、このように右方法
// my helper method
Path newName(Path oldFile, String newNameString){
// the magic is done by Path.resolve(...)
return oldFile.getParent().resolve(newNameString);
}
// so, renaming is done by:
oldPath.moveTo(newName(oldFile, "newName"));
ばく Apache Commons IO あるクラスと呼ばれ FileNameUtils.これは、トンものwrt.ファイルのパス名は、(中でも確実に分割パス名等いうまに向けて長い道のりと考えている。
場合に経路が同一のソースパス 以外のファイルの名前, まさに名称変更より移転しました。
なお、movetoす
/home/me/file456
だが取得できなくてもJavaいたいものUnixをお勧めしまPythonスクリプト(走行するJavaプログラム)Pythonには取得支援のためのUnixスクリプトとしたものでありPerl:)この音inelegantいがより大きなプログラムご利用の権利のツール。