Java使用Files.move将文件从一个目录移动到另一个目录

Java使用Files.move将文件从一个目录移动到另一个目录,java,file,move,Java,File,Move,我正在使用Files.move在读取文件后将文件从一个文件夹位置移动到另一个文件夹位置 文件读取位置: c:\doc\listoffiles\sample1\sample1.txt c:\doc\listoffiles\sample2\sample2.txt 文件将移动到各自的位置。例如:应将sample1.txt移动到子目录sample1并 应将sample2.txt移动到子目录sample2 文件移动位置: c:\doc\movefileto(这是常量) 已创建目录c:\doc\movefi

我正在使用Files.move在读取文件后将文件从一个文件夹位置移动到另一个文件夹位置

文件读取位置: c:\doc\listoffiles\sample1\sample1.txt c:\doc\listoffiles\sample2\sample2.txt

文件将移动到各自的位置。例如:应将sample1.txt移动到子目录sample1并 应将sample2.txt移动到子目录sample2

文件移动位置: c:\doc\movefileto(这是常量)

已创建目录c:\doc\movefileto。 我想在下面创建一个子目录,比如sample1和move sample1.txt sample1将作为动态值出现。 我是文件。按下面的方式移动

String st = "c:\doc\movefileto";
String dynamicFileLoc = "sample1"
Files.move(Paths.get("c:\doc\listoffiles\sample1\sample1.txt"), Paths.get( st+"\\"+dynamicFileLoc));
它不是创建子目录,而是直接将文件转储到c:\doc\movefileto下。
我在这里做错了什么。

Files.move假设目标是一个文件。您需要调用Files.createDirectory

Path src = Paths.get("c:\\doc\\listoffiles\\sample1\\sample1.txt");
Path targetDir = Paths.get(st, dynamicFileLoc);
Files.createDirectory(targetDir);
Path target = targetDir.resolve(src.getFileName());