3.6 KiB
3.6 KiB
file类
创建对象
相对路径绝对路径:(重点)
相对路径:相对于当前项目的路径
File类常用方法:
File类的创建和删除:
File类的遍历方法:
案例展示:
寻找文件夹
public class FileDemo2 {
public static void main(String[] args) {
getDir();
}
public static File getDir() {
System.out.println("请输入要找的文件夹");
Scanner sc = new Scanner(System.in);
while (true) {
String put = sc.nextLine();
File dir = new File(put);
if (!dir.exists()) {
System.out.println("你输入的文件夹不存在,请重新输入");
} else if (dir.isFile()) {
System.out.println("你输入的是一个文件不是文件夹,请重新输入");
} else {
return dir;
}
}
}
}
//打印输入文件夹下所有的.java文件
public class FileDemo3 {
public static void main(String[] args) {
File diry = FileDemo2.getDir();
find(diry);
}
private static void find(File dir) {
//获取当前文件夹下所有文件和文件夹对象,转化为file数组形式
File[] files = dir.listFiles();
for (File file : files) {
//若是文件,判断是否为.java后缀
if (file.isFile() && file.getName().endsWith(".java")){
System.out.println(file);
//若是文件夹则进到下一级继续判断
} else if (file.isDirectory()) {
//注意事项,可能遍历的数组会返回为null
if (file.listFiles() != null) {
find(file);
}
}
}
}
}
//删除文件夹
public class FileDemo4 {
public static void main(String[] args) {
//谨慎测试
deleteDir(new File("D:\\测试Java1"));
}
public static void deleteDir(File dir){
File[] files = dir.listFiles();
//遍历当前flie数组获取到每一个文件对象
for (File file : files) {
if (file.isFile()){
file.delete();
//若是文件夹,则进到里面继续删文件,运用递归
}else if (file.isDirectory()){
//判断数组集合是否为空
if (file.listFiles()!=null){
deleteDir(file);
}
}
}
dir.delete();
}
}
//统计文件大小
public class FileDemo5 {
public static void main(String[] args) {
//键盘录入文件夹路径,统计文件大小
File dir = FileDemo2.getDir();
int i = fileSize(dir);
System.out.println(i);
}
public static int fileSize(File di){
int size = 0;
//遍历
File[] files = di.listFiles();
for (File file : files) {
//判断是否是文件
if (file.isFile()){
int a = (int)file.length();
size+=a;
}else {
if (file.listFiles() != null){
size += fileSize(file);
}
}
}
return size;
}
}