Manel Chaabene
Manel Chaabene

Reputation: 177

'File#renameTo()' does not work in java

I'm trying to rename an existing file using File#renameTo(), but it doesn't seem to work.

The following code represents what I am trying to do:

public class RenameFileDirectory {
    public static void main(String[] args) throws IOException {
        new RenameFileDirectory();
    }

    public RenameFileDirectory() throws IOException {
        File file = new File("C:\\Users\\User-PC\\Desktop\\Nouveau dossier2\\file.png");
        File desFile = new File ("C:\\Users\\User-PC\\Desktop\\Nouveau dossier2\\file2.png");

        if (file.renameTo(desFile)) {
            System.out.println("successful rename");
        } else {
            System.out.println("error");
        }
    }
}

Upvotes: 1

Views: 1687

Answers (1)

Matthew Diana
Matthew Diana

Reputation: 1106

Try using Files.move instead. If you read the javadocs for renameTo, it states that:

Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.

Upvotes: 3

Related Questions