4

jdk7を使用して、クラスjava.nio.file.Filesを使用して空のディレクトリを別の空のディレクトリに移動しようとしています。BarFoo

Path source = Paths.get("Bar");
Path target = Paths.get("Foo");
try {
    Files.move(
        source,
        target,  
        StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}

そのコード スニペットを実行した後、BarディレクトリがFooディレクトリ ( ...\Foo\Bar) にあると予想しました。そうではありません。そして、これがキッカーです。これも削除されました。また、例外はスローされませんでした

私はこれを間違っていますか?

ノート

私はjdk7固有の解決策を探しています.私も問題を調査していますが、jdk7で遊んでいる人が他にいるかどうかを確認したいと思いました.

編集

受け入れられた答えに加えて、ここに別の解決策があります

Path source = Paths.get("Bar");
Path target = Paths.get("Foo");
try {
    Files.move(
    source,
    target.resolve(source.getFileName()),  
    StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}
4

3 に答える 3

4

jdk7 java.nio.file.Files が必要であることに気づかなかったので、ここに編集されたソリューションがあります。以前に新しい Files クラスを使用したことがないため、動作するかどうかを確認してください。

Path source = Paths.get("Bar");
Path target = Paths.get("Foo", "Bar");
try {
    Files.move(
        source,
        target,  
        StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}
于 2011-06-02T04:56:17.780 に答える
0

Files.move メソッドの javadoc には、同じファイル名を保持したままファイルをディレクトリに移動する例があります。これはあなたが探していたもののようです。

于 2011-06-02T10:15:32.890 に答える