今天使用java的File类实现了一个简单的创建多层级多维度的文件目录结构
结构如下
同时使用递归方法实现了文件的遍历查询和全部删除。
(核心思想)判断文件是不是目录,如果是目录就进行递归调用,否则直接进行处理。
下面看一下代码吧!
import java.io.File;
import java.io.IOException;
/**
*
* @author jjking
* @version v1.0
*
* 创建时间: 2019年8月28日 下午3:10:27
*
*/
public class ClassWork01 {
static final int NUM = 10;
/**
* 创建文件夹
* @param path 要创建的路径
*/
public static void createFilesAndDirs(String path) {
File file = new File(path);
file.mkdir();
for (int i = 0; i < NUM; i++) {
File file0 = new File(path +"\\"+ i);
File file1 = new File(path + "\\" + i + ".txt");
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
file0.mkdir();
for (int j = 0; j < NUM; j++) {
File f = new File(path + "\\" + i + "\\" + j);
File f1 = new File(path +"\\" + i + "\\" + j + ".txt");
f.mkdir();
try {
f1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 递归查看文件和目录
*
* @param path
*/
public static void showAllFilesAndDirs(String path) {
File file = new File(path);
File[] files = file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("目录》》》" + file2);
showAllFilesAndDirs(file2.toString());
} else {
System.out.println("文件》》》" + file2);
}
}
}
/**
* 递归删除指定位置内部文件
*
* @param path
*/
public static void deleteAllInnerFilesAndDirs(String path) {
File file = new File(path);
File[] listFiles = file.listFiles();
for (File f : listFiles) {
if (f.isFile()) {
f.delete();
} else {
deleteAllFilesAndDirs(f.toString());
f.delete();
}
}
System.out.println("删除完成!");
}
/**
* 删除指定位置的所有文件
*
* @param path
*/
public static void deleteAllFilesAndDirs(String path) {
deleteAllInnerFilesAndDirs(path);
File file = new File(path);
file.delete();
}
}