Prasath Bala
Prasath Bala

Reputation: 728

How to move files and directories

How to move files and directories into another directory in Java? I am using this technique to copy but I need to move:

    File srcFile = new File(file.getCanonicalPath());
    String destinationpt = "/home/dev702/Desktop/svn-tempfiles";

    copyFiles(srcFile, new File(destinationpt+File.separator+srcFile.getName()));

Upvotes: 0

Views: 128

Answers (3)

saravanakumar
saravanakumar

Reputation: 1777

Have you read this "http://java.about.com/od/InputOutput/a/Deleting-Copying-And-Moving-Files.htm "

    Files.move(original, destination, StandardCopyOption.REPLACE_EXISTING)

move the files to destination.

If you want to move directory Use this

     File dir = new File("FILEPATH");
     if(dir.isDirectory()) {
     File[] files = dir.listFiles();
     for(int i = 0; i < files.length; i++) {
       //move files[i]
     }

}

Upvotes: 2

Sathesh
Sathesh

Reputation: 378

You can try this:

srcFile.renameTo(new File("C:\\folderB\\" + srcFile.getName()));

Upvotes: 3

ItachiUchiha
ItachiUchiha

Reputation: 36722

Java.io.File does not contains any ready make move file method, but you can workaround with the following two alternatives :

  1. File.renameTo()

  2. Copy to new file and delete the original file.

    public class MoveFileExample 
    {
      public static void main(String[] args)
      { 
      try{
    
       File afile =new File("C:\\folderA\\Afile.txt");
    
       if(afile.renameTo(new File("C:\\folderB\\" + afile.getName()))){
        System.out.println("File is moved successful!");
       }else{
        System.out.println("File is failed to move!");
       }
    
    }catch(Exception e){
        e.printStackTrace();
    }
    }
    }
    

For Copy and delete

public class MoveFileExample 
{
    public static void main(String[] args)
    {   

        InputStream inStream = null;
    OutputStream outStream = null;

        try{

            File afile =new File("C:\\folderA\\Afile.txt");
            File bfile =new File("C:\\folderB\\Afile.txt");

            inStream = new FileInputStream(afile);
            outStream = new FileOutputStream(bfile);

            byte[] buffer = new byte[1024];

            int length;
            //copy the file content in bytes 
            while ((length = inStream.read(buffer)) > 0){

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            //delete the original file
            afile.delete();

            System.out.println("File is copied successful!");

        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

HOPE IT HELPS :)

Upvotes: 1

Related Questions