Java中的Files.move()出现FileSystemException错误,因为文件夹为;正在被另一个进程使用,“;但是它';不是
我想将单个文件移动到另一个文件夹,但我不能,因为“它正被另一个进程使用”。这是我的代码:Java中的Files.move()出现FileSystemException错误,因为文件夹为;正在被另一个进程使用,“;但是它';不是,java,file-move,Java,File Move,我想将单个文件移动到另一个文件夹,但我不能,因为“它正被另一个进程使用”。这是我的代码: static File myFile = new File("C:\\filepath"); static File myFolder = new File("C:\\folderpath"); public static void main(String[] args) throws IOException { fileMove(); } public static void
static File myFile = new File("C:\\filepath");
static File myFolder = new File("C:\\folderpath");
public static void main(String[] args)
throws IOException {
fileMove();
}
public static void fileMove()
throws IOException {
Files.move(myFile.toPath(), myFolder.toPath(), StandardCopyOption.REPLACE_EXISTING);
return;
}
错误消息:线程“main”java.nio.file.FileSystemException中出现异常:C:\folderpath:该进程无法访问该文件,因为它正被另一个进程使用。 我尝试了不同的文件,不同的文件夹,但每次它都说文件正在使用。我已经用一个基本的文本文件进行了测试,当我测试它时,它肯定是关闭的,没有被使用,但我仍然得到了错误。有人知道发生了什么事吗?或者,是否有其他方法可以移动不会出现此问题的文件?用户回答: 我使用:
public static void moveFile(String origen, String destino) throws IOException {
Path FROM = Paths.get(origen);
Path TO = Paths.get(destino);
CopyOption[] options = new CopyOption[]{
StandardCopyOption.ATOMIC_MOVE
};
Files.move(FROM, TO, options);
}
Files.move(myFile.toPath(),myFolder.toPath().resolve(myFile.getName()),StandardCopyOption.REPLACE_现有)可能重复代码>@alzee该解决方案没有给出错误,但文件根本没有移动。@rollback我们赢了!这解决了我的问题。谢谢。我没有时间发布完整的答案,这就是我添加它作为评论的原因。说明:Files.move(Path,Path,CopyOption…)的第二个参数必须是目标路径(包括目标文件名)。这就是为什么您必须添加.resolve(myFile.getName())
public static void moveFile(String origen, String destino) throws IOException {
Path FROM = Paths.get(origen);
Path TO = Paths.get(destino);
CopyOption[] options = new CopyOption[]{
StandardCopyOption.ATOMIC_MOVE
};
Files.move(FROM, TO, options);
}