【Java】ファイルの存在確認、フォルダ作成、削除
本稿は、ファイルクラスについて説明します。
Fileクラスとは、ファイルのパスに関する情報を扱います。
また、ファイルかフォルダか判定したり、フォルダの中身を取得することもできます。
ゲームでは、セーブデータの存在確認やフォルダがなければ自動生成するなど、いろいろ使いどころはあります。
そんなFileクラスの機能で使う可能性がある機能のみを紹介します。
※ファイルの移動、コピー、削除などの操作をする場合は比較的新しいAPIであるFilesクラスを推奨します。多少難易度が上がりますが、こちらのほうが信頼度の高い処理となります。Filesクラスでの移動、コピー、削除等の一部の操作はこちらの記事で説明しています。
コンストラクタの指定方法
Fileクラスのコンストラクタにはnew File(フォルダ名/ファイル名)のような形で指定できます。
絶対パス指定と相対パス指定ができますが、相対パス指定で記述した場合はJavaの実行パスからの相対パスとなります。
これを踏まえて、以降のメソッドの実行サンプルを見てみましょう。
getNameメソッド
Fileオブジェクトの示すファイル名、フォルダ名を取得します。
import java.io.File; public class Test{ public static void main(String[] args){ File file = new File("folder/test.txt"); System.out.println(file.getName()); } }
test.txt
getAbsolutePathメソッド
Fileオブジェクトの示す絶対パス指定文字列を取得します。
import java.io.File; public class Test{ public static void main(String[] args){ File file = new File("folder/test.txt"); System.out.println(file.getAbsolutePath()); } }
C:\Users\ユーザー名\Desktop\Web関連\Javaテスト\folder\test.txt
isDirectoryメソッド
Fileオブジェクトの示す場所がフォルダかどうか判定します。
実行フォルダに、test.txtファイルとtestフォルダを作成します。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("test.txt"); System.out.println(f1.isDirectory()); File f2 = new File("test"); System.out.println(f2.isDirectory()); } }
false
true
testのほうはtrueが取得できました。
isFileメソッド
Fileオブジェクトの示す場所がファイルかどうか判定します。
実行フォルダに、test.txtファイルとtestフォルダを作成します。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("test.txt"); System.out.println(f1.isFile()); File f2 = new File("test"); System.out.println(f2.isFile()); } }
true
false
test.txtのほうはtrueが取得できました。
existsメソッド
Fileオブジェクトの示す場所にファイル、またはフォルダが存在するか確認します。
実行フォルダに、test.txtファイルを作成します。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("test.txt"); System.out.println(f1.exists()); File f2 = new File("test1.txt"); System.out.println(f2.exists()); } }
test.txtは存在するのでtreですが、test1.txtファイルはないのでfalseになりました。
true
false
listFilesメソッド
Fileオブジェクトの示す場所のフォルダの中身のファイルとフォルダをFile配列で全取得します。
まずは、testフォルダを作成します。
その中に、適当なファイルを入れて試します。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("test"); File[] list = f1.listFiles(); for ( File f : list ) { System.out.println(f.getName()); } } }
その他
僕.txt
画像.jpg
私.txt
フォルダの中身をファイル名、フォルダ名で表示することができました。
mkdirメソッド
Fileオブジェクトの示す場所にフォルダを作成します。
試しにやっほいフォルダを作成してみます。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("やっほい"); f1.mkdir(); } }
やっほいフォルダが作成されましたね。
deleteメソッド
Fileオブジェクトの示す場所のファイルまたはフォルダを削除します。
やっほいフォルダを削除してみます。
import java.io.File; public class Test{ public static void main(String[] args){ File f1 = new File("やっほい"); f1.delete(); } }
やっほいフォルダが削除されましたね。
renameToメソッド
ファイルまたはフォルダを移動したり、名前変更したりできます。
テスト.txtファイルをやっほいフォルダに移動してみます。
import java.io.File; public class Test{ public static void main(String[] args){ File src = new File("テスト.txt"); File dest = new File("やっほい/テスト.txt"); src.renameTo(dest); } }
先ほどあった、テスト.txtファイルがなくなりました。
やっほいフォルダの中身
ちゃんと移動されているようです。
ディスカッション
コメント一覧
まだ、コメントがありません