1.使用文件名称过滤器筛选将指定文件夹下的小于200K的小文件获取并打印。
2.从键盘接收一个文件夹路径,统计该文件夹大小。
3.从键盘接收一个文件夹路径,删除该文件夹。
4.从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
例如:
aaa是文件夹,里面有bbb.txt,ccc.txt,ddd.txt这些文件,有eee这样的文件夹,eee中有fff.txt和ggg.txt,打印出层级来
实现代码:
import java.io.File;
import java.io.FileFilter;
import java.util.Scanner;
public class HomeWork1 {
public static void main(String[] args) {
System.out.print("请输入文件夹路径:");
File file = new File(new Scanner(System.in).next());
System.out.println(file.getName());
getAll(file,0);
System.out.println("--------------------");
getThings(file);
getFileSize(file);
System.out.print("请输入要删除的文件路径:");
File file2 = new File(new Scanner(System.in).next());
delete(file2);
}
// 1.使用文件名称过滤器筛选将指定文件夹下的小于200K的小文件获取并打印
public static void getThings(File file) {
File[] fileArray = file.listFiles(new HomeWork1Inter());
for(File f : fileArray) {
if(f.isDirectory())
getThings(file);
else
System.out.println(f.getName());
}
}
// 2.从键盘接收一个文件夹路径,统计该文件夹大小。
public static void getFileSize(File file) {
File[] fileArray = file.listFiles();
long fileSize = 0;
for(File f : fileArray) {
fileSize += f.length();
}
System.out.println(fileSize);
}
// 3.从键盘接收一个文件夹路径,删除该文件夹。
public static void delete(File file) {
file.delete();
}
// 4.从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
public static void getAll(File file,int count) {
if(file.isDirectory()) {
File[] fileArray = file.listFiles();
for(File f : fileArray) {
if(count == 1)
System.out.print("\t");
if(f.isDirectory()) {
System.out.println("\t"+f.getName());
getAll(f,1);
}
else
System.out.println("\t"+f.getName());
}
}
}
}
//判断文件大小是否大于200k
class HomeWork1Inter implements FileFilter {
@Override
public boolean accept(File pathName) {
if(pathName.isFile()) {
if(pathName.length() < 200*1024)
return true;
}
return false;
}
}