Java フォルダ・ファイルの作成/削除/移動のサンプル(Filesクラス)

Javaのフォルダ・ファイルの作成/削除/移動のサンプルです。

確認環境
・Java 8

目次

Filesクラス

Pathsクラス - getメソッド

1 public static Path get(URI uri)
2 public static Path get(String first,String... more)
  • Pathオブジェクトを返すメソッドです。
  • PathオブジェクトはFilesクラスのメソッドに指定します。
  • 1は、引数にパスをセットします。戻り値はPathオブジェクトです。
  • 2は、引数にパスとファイル名をセットします。戻り値はPathオブジェクトです。
  • 以下はJava8 API仕様のPathsクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Paths.html

空フォルダ・空ファイルの作成

空フォルダ・空ファイルの作成のサンプルです。

package test1;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\Test5";
        String filename = "test1.txt";

        // 空フォルダを作成
        try {
            if (!Files.isDirectory(Paths.get(dir))) {
                Files.createDirectory(Paths.get(dir));
            }
		} catch (IOException e) {
			e.printStackTrace();
		}
        
     // 空ファイルを作成
        try {
            if (!Files.exists(Paths.get(dir, filename))) {
                Files.createFile(Paths.get(dir, filename));
            }
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}

16行目は、 FilesクラスのcreateDirectoryメソッドでフォルダを作成しています。
フォルダが既に存在する場合はエラーになるので15行目で存在チェックをしています。
25行目は、 FilesクラスのcreateFileメソッドでファイルを作成しています。
ファイルが既に存在する場合はエラーになるので24行目で存在チェックをしています。

 

フォルダ・ファイルの削除

フォルダ・ファイルの削除のサンプルです。

package test1;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
 
public class Test1 {
    public static void main(String[] args) {
        
        String dir = "D:\\Test5";
        String filename = "test1.txt";
        
        // ファイルの削除
        try {
            Files.deleteIfExists(Paths.get(dir, filename));
		} catch (IOException e) {
			e.printStackTrace();
		}
        
        // フォルダの削除
        try {
        	Files.deleteIfExists(Paths.get(dir));
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}

15行目は、 FilesクラスのdeleteIfExistsメソッドでファイルを削除しています。
メソッド名にIfExitstsとあるようにファイルが存在する場合のみ削除処理を行います。
22行目は、 FilesクラスのdeleteIfExistsメソッドでフォルダを削除しています。
上記と同じくフォルダが存在する場合のみ削除処理を行います。

※注 フォルダの中にファイルが存在した場合、フォルダを削除できません。
java.nio.file.DirectoryNotEmptyExceptionの例外が発生します。

 

フォルダ・ファイルの移動

フォルダ・ファイルの移動のサンプルです。

package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

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

        //ファイルの移動
        String dir1 = "D:\\Test1";
        String dir2 = "D:\\Test2";
        String filename = "\\test1.txt";
        
        Path from1 = Paths.get(dir1+filename);
        Path to1 = Paths.get(dir2+filename);
		
        try {
			Files.move(from1, to1);
		} catch (IOException e) {
			e.printStackTrace();
		}
        
        //フォルダの移動
        String dir3 = "D:\\Test1\\sub1";
        String dir4 = "D:\\Test2\\sub1";
        
        Path from2 = Paths.get(dir3);
        Path to2 = Paths.get(dir4);
		
        try {
			Files.move(from2, to2);
		} catch (IOException e) {
			e.printStackTrace();
		}
 	}
}

11-22行目は、ファイルの移動です。
19行目は、Filesクラスのmoveメソッドでファイルを移動しています。
25-35行目は、フォルダの移動です。
32行目は、Filesクラスのmoveメソッドでフォルダを移動しています。
フォルダの中にファイルがあっても移動できます。

関連の記事

Java テキストファイルの読み書きのサンプル(Filesクラス)

△上に戻る