Files.move() in Java 给出 FilesSystemException 错误,因为文件夹是 "being used by another process," 但它不是
Files.move() in Java giving a FilesSystemException error because folder is "being used by another process," but it's not
我想将单个文件移动到另一个文件夹,但我不能,因为 "it is being used by another process." 这是我的代码:
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: 进程无法访问该文件,因为它正被另一个进程使用。
我试过不同的文件,不同的文件夹,但每次都说文件正在使用中。我已经用一个基本的文本文件对其进行了测试,该文件肯定是关闭的并且在我测试它时没有被使用,但我仍然遇到错误。有谁知道发生了什么事?或者,是否有另一种移动文件的方法不会出现此问题?
来自用户rollback的回答:
Files.move(myFile.toPath(), myFolder.toPath().resolve(myFile.getName()), StandardCopyOption.REPLACE_EXISTING);
我使用:
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);
}
我想将单个文件移动到另一个文件夹,但我不能,因为 "it is being used by another process." 这是我的代码:
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: 进程无法访问该文件,因为它正被另一个进程使用。
我试过不同的文件,不同的文件夹,但每次都说文件正在使用中。我已经用一个基本的文本文件对其进行了测试,该文件肯定是关闭的并且在我测试它时没有被使用,但我仍然遇到错误。有谁知道发生了什么事?或者,是否有另一种移动文件的方法不会出现此问题?
来自用户rollback的回答:
Files.move(myFile.toPath(), myFolder.toPath().resolve(myFile.getName()), StandardCopyOption.REPLACE_EXISTING);
我使用:
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);
}