[英]How to move file/files from one folder to another in Scala
我是 Scala 的新手。
我在谷歌上搜索了很多關於如何在 Scala 中移動文件的信息,但只找到了如何在 Java 中移動文件。 我嘗試使用 Java import Java.io.File
移動文件,同時使用:
Files.move("FileA", "FileB", StandardCopyOption.REPLACE_EXISTING);
Files.move("DirA", "DirB", StandardCopyOption.ATOMIC_MOVE);
但它沒有用。 我的代碼如下所示:
Files.move("/public", "/public/images", StandardCopyOption.ATOMIC_MOVE);
我想將文件從public
移動到public/images
。
根據我對你的問題的理解,
您正在嘗試將String
變量而不是java.nio.Path
變量傳遞給Files.move()
。
以下方法有效:
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)
但是,我在您的代碼中看到了另一個問題。 StandardCopyOption.REPLACE_EXISTING
和StandardCopyOption.ATOMIC_MOVE
都應該可以工作,但是,您不能將父目錄直接移動到它的子目錄中。
$ mv public/ public/images
mv: cannot move ‘public/’ to a subdirectory of itself, ‘public/images’
相反,您可能想要移動public
-> tmp
-> public/images
請參閱我的 Github 中的以下 Scala 代碼: https : //github.com/saghircse/SelfStudyNote/blob/master/Scala/MoveRenameFiles.scala
您需要在 main 函數中指定源文件夾和目標文件夾:
val src_path = "<SOURCE FOLDER>" // Give your source directory
val tgt_path = "<TARGET FOLDER>" // Give your target directory
它還重命名文件。 如果您不想重命名文件,則更新如下:
val FileList=getListOfFiles(src_path)
FileList.foreach{f =>
val src_file = f.toString()
//val tgt_file = tgt_path + "/" + getFileNameWithTS(f.getName) // If you want to rename files in target
val tgt_file = tgt_path + "/" + f.getName // If you do not want to rename files in target
copyRenameFile(src_file,tgt_file)
//moveRenameFile(src_file,tgt_file) - Try this if you want to delete source file
println("File Copied : " + tgt_file)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.