Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Files.move()出现FileSystemException错误,因为文件夹为;正在被另一个进程使用,“;但是它';不是_Java_File Move - Fatal编程技术网

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);
    }