Java File Move nui moveFile(File source, File destination)

Here you can find the source of moveFile(File source, File destination)

Description

Moves the specified source file to the specified destination.

License

Open Source License

Parameter

Parameter Description
source the file to move.
destination the destination file of the move.

Exception

Parameter Description
IOException if the source or the destination is invalid or if an error occurs whilemoving the file.

Declaration

public static void moveFile(File source, File destination) throws IOException 

Method Source Code

//package com.java2s;
/*//from   w  w  w.  j a  v  a2s.  c  o m
 * Copyright (C) 2000 - 2018 Silverpeas
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * As a special exception to the terms and conditions of version 3.0 of
 * the GPL, you may redistribute this Program in connection with Free/Libre
 * Open Source Software ("FLOSS") applications as described in Silverpeas's
 * FLOSS exception.  You should have received a copy of the text describing
 * the FLOSS exception, and it is also available here:
 * "https://www.silverpeas.org/legal/floss_exception.html"
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.io.File;

import java.io.IOException;

import java.nio.file.Files;
import java.nio.file.Path;

import java.util.Comparator;

import java.util.stream.Stream;

public class Main {
    /**
     * Moves the specified source file to the specified destination. If the destination exists, it is
     * then replaced by the source; if the destination is a directory, then it is deleted with all of
     * its contain.
     *
     * @param source the file to move.
     * @param destination the destination file of the move.
     * @throws IOException if the source or the destination is invalid or if an error occurs while
     * moving the file.
     */
    public static void moveFile(File source, File destination) throws IOException {
        if (destination.exists()) {
            forceDeletion(destination);
        }
        Files.move(source.toPath(), destination.toPath());
    }

    /**
     * Forces the deletion of the specified file. If the write property of the file to delete isn't
     * set, this property is then set before deleting.
     *
     * @param fileToDelete file to delete.
     * @throws IOException if the deletion failed or if the file doesn't exist.
     */
    public static void forceDeletion(File fileToDelete) throws IOException {
        if (fileToDelete.exists() && !fileToDelete.canWrite()) {
            fileToDelete.setWritable(true);
        }
        try (Stream<Path> paths = Files.walk(fileToDelete.toPath())) {
            paths.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
        }
    }
}

Related

  1. move(File in, File out)
  2. move(File source, File destination)
  3. move(final File from, final File to, final boolean replace)
  4. move(String sourceFile, String targetFile)
  5. moveFile(File from, File to)
  6. moveFile(File src, File dest)
  7. moveFile(final File srcFile, final File destFile)
  8. moveFile(String source, String target)
  9. moveFile(String sourceFile, String destFile)