Javaでディレクトリをコピーする方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaでディレクトリをコピーする方法について解説しています。ローカルディスクのディレクトリのコピーにはFileUtilsクラスのcopyDirectoryメソッドを使います。基本の書き方を学びましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Javaでディレクトリをコピーする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ディレクトリをコピーする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

FileUtilsクラスとは

Javaを使ってローカルディスクのディレクトリをコピーするためには、「FileUtilsクラス」というクラスを使います。

FileUtils クラスというのは、ディレクトリやファイルの操作に関するクラスで、「org.apache.commons.io」というライブラリをインストールすれば使うことができます。

FileUtilクラスは非常に便利なクラスで、

  • ディレクトリの作成/削除や
  • ファイルの作成/削除
  • ファイルへの書き込み

など様々な処理がかんたんにできるメソッドを豊富に持っています。

 

[PR] Javaで挫折しない学習方法を動画で公開中

ディレクトリをコピーする方法

FileUtilクラスを使ってディレクトリをコピーするには、copyDirectoryというメソッドを使います。このメソッドは、

FileUtils.copyDirectory(コピー元のパスを持つFileクラス, コピー先のパスを持つFileクラス);

というように記述します。引数のFileクラスというのは、それぞれ、

File オブジェクト名 = new File("パス”);

のようにして生成して置く必要があります。追加して、copyDirecoryメソッドを使う場合は、try-catch構文を使う必要があることに注意してください。

 

実際に書いてみよう

それでは、実際にコードを書いてみましょう。

今回は、プログラムの実行ディレクトリにあるsampleという名前のディレクトリをsample2という名前で複製する処理を行ないます。(あらかじめ、sampleという名前をもつディレクトリを作成しておいてください。)

import java.io.File;
import org.apache.commons.io.FileUtils;
import java.io.IOException;

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

                //コピー元のパスを持つFileオブジェクトの生成
                File srcDir = new File("sample");
                //コピー先のパスを持つFileオブジェクトの生成
                 File destDir = new File("sample2");

                 try {
                        //ディレクトリの複製
                         FileUtils.copyDirectory(srcDir, destDir);
                 } catch (IOException e) {
                         e.printStackTrace();
                 }
         }
}

これを実行すると、ちゃんとsample2という名前のディレクトリが作成されて、中身はsampleディレクトリと同じであることが確認できると思います。

 

まとめ

この記事では、JavaにおいてFileUtilsクラスを使ったディレクトリのコピー方法について解説しました。

プログラム内で、ディレクトリの複製などの処理が必要になったときなどに参考にしてみてください。

 

監修してくれたメンター

小倉翔悟 (おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。プログラミング歴は約3年。Pythonは割と好きな方。JavaもAndroid開発で触れていたりする。

大学では物理学を勉強中。好きな物理理論は一般相対性理論らしい。

意外と動物が好きだったり、、、。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

 

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。