2
votes

I want to move a single file to another folder, but I can't because "it is being used by another process." This is my code:

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

Error message:
Exception in thread "main" java.nio.file.FileSystemException: C:\folderpath: The process cannot access the file because it is being used by another process.

I've tried out different files, different folders, but everytime it says the file is being used. I've tested it with a basic text file that was definitely closed and not being used when I tested it, but I still get the error. Does anyone know what's going on? Or, is there another way to move files that won't have this issue?

3
Files.move(myFile.toPath(), myFolder.toPath().resolve (myFile.getName ()), StandardCopyOption.REPLACE_EXISTING); - Felix
@alzee That solution did not give an error, but the file was not moved at all. - ooo
@rollback We have a winner! This fixes my problem. Thank you. - ooo

3 Answers

0
votes

Answer from user rollback:

Files.move(myFile.toPath(), myFolder.toPath().resolve(myFile.getName()), StandardCopyOption.REPLACE_EXISTING);
0
votes

I still get access denied errors.

-1
votes

I use:

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