Javaでファイルかディレクトリの確認と削除方法
Javaでディレクトリ配下のファイル or ディレクトリの一覧を表示したり削除したりします。
File folder = new File("D:\\test");
D:\testディレクトリのオブジェクトfolderを作成します。
D:\testディレクトリが存在するか確認するには、exists()メソッドを使用します。
if (folder.exists()) {
}
存在するならtrue、存在しないならfalseを返します。
File[] obj = folder.listFiles();
とすることでfolderディレクトリ配下のファイルとディレクトリをFile配列に格納します。
D:\test配下が以下のような構成だったとします。
D:\test
├─a
├─b─b.txt
└─a.txt
objには、a,b,a.txtの3つが格納されます。サブディレクトリ配下のb.txtは格納されません。
obj.isDirectory()でディレクトリかどうか判断できます。
obj.isFile()でファイルかどうか判断できます。
for文でobjをループし、各ディレクトリ、各ファイルを削除します。削除するにはdelete()メソッドを使用します。
for (int i = 0; i < obj.length; i++) {
obj[i].delete();
}
これを全部記述すると以下のようになります。
package jp.co.confrage;
import java.io.File;
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
File folder = new File("D:\\test");
if (folder.exists()) {
File[] obj = folder.listFiles();
for (int i = 0; i < obj.length; i++) {
obj[i].delete();
}
}
}
}
結果をみるとbフォルダとその配下のb.txtは削除されていません。これはJavaのFileクラスの仕様で、ディレクトリ内が空でない場合は、削除されないです。
空出ないディレクトリも全て削除したい場合は別途メソッドを作ってあげる必要があります。
deleteAllメソッドです。共通クラスに作成しています。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント