2016-05-26 13 views
2

Scalaの新機能です。
私はたくさん検索しましたが、Javaでファイルを移動する方法しか見つかりませんでした。私はJavaのインポートJava.io.Fileを使用してファイルを移動しようとしました。Scalaの1つのフォルダから別のフォルダにファイル/ファイルを移動する方法


Files.move( "FileA"、 "FileB"、StandardCopyOption.REPLACE_EXISTING); とFiles.move( "DirA"、 "DirB"、StandardCopyOption.ATOMIC_MOVE);

でも動作しませんでした。私のコードは次のようになります:
Files.move( "/ public"、 "/public/images",StandardCopyOption.ATOMIC_MOVE);

私はあなたがFiles.move()String変数の代わりに、java.nio.Path変数を渡すしようとしている
、あなたの質問の私の理解からpublic/images

+0

あなたはそれが機能しなかったと思いますか、それは動作しませんでしたか?多分あなたは完全なシステムパスを与えるようにしなければならないでしょうか?また、ディレクトリを自身のサブディレクトリに移動するのは難しいようですので、パブリックディレクトリのファイルをループして、画像ディレクトリ –

+0

に移動する必要があります。私たちに推測させないでください。どのように動作しませんでしたか? –

答えて

3

publicからファイルを移動します。

以下の方法が動作します:

import java.io.File 
import java.nio.file.{Files, Path, StandardCopyOption} 

val d1 = new File("/abcd").toPath 
val d2 = new File("/efgh").toPath 

Files.move(d1, d2, StandardCopyOption.ATOMIC_MOVE) 

は、しかし、私はあなたのコード内で1つの以上の問題を参照してください。 StandardCopyOption.REPLACE_EXISTINGStandardCopyOption.ATOMIC_MOVEの両方が機能するはずですが、親ディレクトリをその子ディレクトリに直接移動することはできません。

$ mv public/ public/images 
mv: cannot move ‘public/’ to a subdirectory of itself, ‘public/images’ 

代わりにあなたが移動する場合がありますpublic - >tmp - >public/images

関連する問題