Java で現在のディレクトリから新しいディレクトリにファイルを移動する

Mehvish Ashiq 2023年10月12日
  1. Java NIO の Files.move() メソッドを使用して、現在のディレクトリから新しいディレクトリにファイルを移動する
  2. renameTo() メソッドを使用して、現在のディレクトリから新しいディレクトリにファイルを移動する
Java で現在のディレクトリから新しいディレクトリにファイルを移動する

このチュートリアルでは、Java でファイルを移動するさまざまな方法を紹介します。ファイルをあるディレクトリから別のディレクトリにローカルに(同じマシン上で)移動する 2つの方法について学習します。

これらのメソッドには、Java NIO(New Input Output)パッケージの Files.move() メソッドと、Java.io.File パッケージに含まれている renameTo() メソッドが含まれます。

Java NIO の Files.move() メソッドを使用して、現在のディレクトリから新しいディレクトリにファイルを移動する

Java 7 以降を使用している場合は、次のソリューションを使用できます。

コード例:

import java.io.IOException;
import java.nio.file.*;

public class MoveFile {
  public static void main(String[] args) {
    Path sourcePath = Paths.get("./moveFile.txt");
    Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/moveFile.txt");

    try {
      Files.move(sourcePath, targetPath);
    } catch (FileAlreadyExistsException ex) {
      System.out.println("The target path already has a target file");
    } catch (IOException exception) {
      System.out.format("I/O error: %s%n", exception);
    }
  }
}

main メソッドには、移動する必要のあるファイルのソースパスとターゲットパスが必要です。Paths.get() メソッドを使用してソースファイルのパスを取得し、それを sourcePath という名前の Path 型変数に保存します。

次に、Paths.get() メソッドを再度使用して、目的の場所と、System.getProperty("user.home") を使用してアクセスするユーザーのホームディレクトリを連結することにより、ターゲットパスを取得します。

Files.move() メソッドは、移動する必要のあるファイルのソースパスとターゲットパスを取得し、ファイルの名前を変更せずに、ファイルを sourcePath から targetPath に移動します。

Files.move() メソッドは、IOException または FileAlreadyExistsException を引き起こす可能性があるため、try ブロックで囲まれています。ただし、これらの例外は catch ブロックで適切に処理されます。

FileAlreadyExistException を回避したい場合は、次のように REPLACE_EXISTING オプションを使用して、targetPath でファイルを置き換えることができます。

Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);

また、targetPath に新しい名前のファイルが必要な場合は、sourcePathtargetPath を同じままにしますが、ファイルの名前は次のようにのみ変更します。

Path sourcePath = Paths.get("./moveFile.txt");
Path targetPath = Paths.get(System.getProperty("user.home") + "/Desktop/Files/newMoveFile.txt");

renameTo() メソッドを使用して、現在のディレクトリから新しいディレクトリにファイルを移動する

Java 6 を使用している場合は、次のソリューションが推奨されます。

コード例:

import java.io.*;

public class MoveFile {
  public static void main(String[] args) {
    File file = new File(".\\moveFile.txt");

    if (file.renameTo(new File("E:\\moveFile.txt"))) {
      System.out.println("File is moved successfully");
    } else {
      System.out.println("File is not moved");
    }
  }
}

このコードスニペットは、renameTo() メソッドを使用して、指定されたファイルをある場所から別の場所に移動します。

renameTo() メソッドは、新しい抽象宛先パスを取得し、ファイルの名前を変更し(新しい名前を指定したが、このソリューションでは名前を変更しない場合)、ファイルをターゲットの場所に移動します。

ファイルが正常に移動された場合は true を返し、ファイルが移動されたことを示すメッセージを出力し、指定されたファイルが移動されなかった場合は警告を表示します。上記のコードが表示される場合があります。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - Java File