Moving a file from one directory to another using Java

Java provides functions to move files between directories. Two ways to achieve this are described here. The first method utilizes Files package for moving while the other method first copies the file to destination and then deletes the original copy from the source.

  1. Using Files.Path move() method: Renaming and moving the file permanently to a new location.
    Syntax:

    public static Path move(Path source, Path target, CopyOption..options)
               throws IOException
    Parameters: 
    source - the path to the file to move
    target - the path to the target file 
    (may be associated with a different provider to the source path)
    options - options specifying how the move should be done
    Returns: the path to the target file
    // Java program to illustrate renaming and
    // moving a file permanently to a new loaction
    import java.io.*;
    import java.nio.file.Files;
    import java.nio.file.*;
    
    public class Test
    {
    	public static void main(String[] args) throws IOException
    	{
    		Path temp = Files.move
            (Paths.get("C:\\Users\\Mayank\\Desktop\\44.txt"), 
            Paths.get("C:\\Users\\Mayank\\Desktop\\dest\\445.txt"));
    
    		if(temp != null)
    		{
    			System.out.println("File renamed and moved successfully");
    		}
    		else
    		{
    			System.out.println("Failed to move the file");
    		}
    	}
    }
    

    Output:

    File renamed and moved successfully
  2. Using Java.io.File.renameTo() and Java.io.File.delete() methods: Copying the file and deleting the original file using these two methods.
    Syntax of renameTo():

    public boolean renameTo(File dest)
    Description: Renames the file denoted by this abstract path name.
    Parameters: dest - The new abstract path name for the named file
    Returns: true if and only if the renaming succeeded; false otherwise
    

    Syntax of delete():

    public boolean delete()
    Description: Deletes the file or directory 
    denoted by this abstract path name.
    Returns: true if and only if the file or 
    directory is successfully deleted; false otherwise
    
    // Java program to illustrate Copying the file
    // and deleting the original file
    import java.io.*;
    
    public class Test
    {
    	public static void main(String[] args)
    	{
    		File file = new File("C:\\Users\\Mayank\\Desktop\\1.txt");
    		
    		// renaming the file and moving it to a new location
    		if(file.renameTo
               (new File("C:\\Users\\Mayank\\Desktop\\dest\\newFile.txt")))
    		{
    			// if file copied successfully then delete the original file
    			file.delete();
    			System.out.println("File moved successfully");
    		}
    		else
    		{
    			System.out.println("Failed to move the file");
    		}
    
    		
    	}
    }
    

    Output

    File moved successfully

    References:

    This article is contributed by Mayank Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

    GATE CS Corner    Company Wise Coding Practice





Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.