File类练习
小于 1 分钟JavaIO流
打印目录下所有文件
public static void listFileTree(File file){
if(file.isDirectory()){
File[] files = file.listFiles();
if(files == null){
return;
}
for (File child : files) {
if(child.isFile()){
System.out.println(child.getAbsolutePath());
}
if(child.isDirectory()){
listFileTree(child);
}
}
}
}
获取目录大小
public static void main(String[] args) {
File file = new File("E:\\音乐");
Long size = getDirSize(file);
BigDecimal bigDecimal = new BigDecimal(size / (1024 * 1024 * 1.0));
BigDecimal ans = bigDecimal.setScale(0, RoundingMode.DOWN);
System.out.println(ans + " MB");
}
/**
* 获取文件夹大小
* @param dir 文件夹
*/
public static Long getDirSize(File dir){
Long size = 0L;
if(dir.exists() && dir.isDirectory()){
File[] files = dir.listFiles();
// 空目录
if(files == null){
return 0L;
}
for (File file : files) {
if(file.isDirectory()){
size += getDirSize(file);
} else {
size += file.length();
}
}
}
return size;
}
递归删除文件夹
/**
* 删除文件夹
* @param path 文件路径
*/
public static void deleteDir(String path){
File file = new File(path);
if(file.exists() && file.isDirectory()){
File[] files = file.listFiles();
// 空目录
if(files == null){
return;
}
// 递归删除
for (File dir : files) {
if(dir.isDirectory()){
deleteDir(dir.getAbsolutePath());
} else {
dir.delete();
}
}
}
file.delete();
}