* public File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
* public File(String parent, String child)
从父路径名字符串和子路径名字符串创建新的 File实例。
* public File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的 File实例。
* String getAbsolutePath()
返回此File的绝对路径名字符串。
* String getPath()
将此File转换为路径名字符串。
* String getName()
返回由此File表示的文件或目录的名称。
* long length()
返回由此File表示的文件的长度。
* long lastModified()
返回此抽象路径名表示的文件最后一次被修改的时间。
* boolean exists()
此File表示的文件或目录是否实际存在。
* boolean isDirectory()
此File表示的是否为目录。
* boolean isFile()
此File表示的是否为文件
* boolean createNewFile()
当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
* boolean delete()
删除由此File表示的文件或目录。
* boolean mkdir()
创建由此File表示的目录。
* boolean mkdirs()
创建由此File表示的目录,包括任何必需但不存在的父目录。
* String[] list()
返回一个String数组,表示该File目录中的所有子文件或目录。
* File[] listFiles()
返回一个File数组,表示该File目录中的所有的子文件或目录。
① 绝对路径
* 从根目录开始的路径
② 相对路径
* 以当前文件夹为基准的路径
import java.io.File;
public class DemoRecursion {
public static void main(String[] args) {
//创建文件对象
//File.separator是文件名称分隔符 windows是 \ Linux 是 /
File file = new File("E:\\");
recurstion(file);
}
public static void recurstion(File file) {
//合法性判断
if (file == null) {
return;
}
//获取文件夹下所有的子文件或者文件夹
File[] files = file.listFiles();
//可能因为权限等问题无法获取文件夹内的文件
if (files == null) {
return;
}
//遍历文件数组
for (File file1 : files) {
if (file1.isDirectory()) {
//是文件夹则打印文件夹路径并递归
System.out.println(file1.getPath());
recurstion(file1);
} else {
//否则打印文件路径加文件长度
System.out.println(file1.getPath() + "\t大小是:" + ((float)file1.length() / 1024 / 1024) + "M");
}
}
}
}
import java.io.File;
public class DemoCreateFile {
public static void main(String[] args) {
//指定文件路径
File file = new File("D:\\WorkSpace");
//传递一个递归结束条件
int i = 0;
//调用方法
recursion(file,i);
}
public static void recursion(File file,int i) {
//递归结束条件
if (i > 100) return ;
//指定创建的文件夹
File f = new File(file,"new");
//创建文件夹
f.mkdirs();
//递归调用
recursion(f,i);
}
}
import java.io.File;
public class DemoDeleteFile {
public static void main(String[] args) {
//指定路径
File file = new File("D:\\WorkSpace\\new");
delete(file);
}
private static void delete(File file) {
//判断是否存在
if (file.exists()) {
//判断是否是文件夹
if (file.isDirectory()) {
//获取文件夹内所有的文件和文件夹
File[] files = file.listFiles();
if (files.length > 0) {
//若数组长度大于0则该文件夹内有内容
for (File file1 : files) {
//遍历数组,递归文件夹
delete(file1);
}
}
//删除文件夹
file.delete();
} else {
//不是文件夹则直接删除文件
file.delete();
}
}
}
}
import java.io.File;
import java.util.Scanner;
public class DemoRecursion {
//设置查找文件状态。默认未找到
static boolean b = false;
public static void main(String[] args) {
//创建文件对象
File file = new File("E:\\");
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的文件");
String s = sc.next();
recurstion(file,s);
if (!b) {
System.out.println("没有找到文件");
}
}
public static void recurstion(File file,String s) {
//合法性判断
if (file == null) {
return;
}
//获取文件夹下所有的子文件或者文件夹
File[] files = file.listFiles();
//可能因为权限等问题无法获取文件夹内的文件
if (files == null) {
return;
}
//遍历文件数组
for (File file1 : files) {
if (file1.isDirectory()) {
//是文件夹则递归
recurstion(file1,s);
} else {
//判断文件名是否包含要查找的字符串
if (file1.getName().contains(s)){
//设置为找到文件
b = true;
System.out.println(file1.getPath());
}
}
}
}
}
import java.io.File;
import java.io.FileFilter;
import java.util.Scanner;
public class DemoRecursion {
static boolean b = false;
public static void main(String[] args) {
//创建文件对象
File file = new File("E:\\");
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的文件");
String s = sc.next();
recurstion(file,s);
if (!b) {
System.out.println("没有找到文件");
}
}
public static void recurstion(File file,String s) {
//合法性判断
if (file == null) {
return;
}
//使用过滤器获取文件夹下所有的子文件或者文件夹
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//判断是否为文件夹或者是包含查找字符串的文件名
return file.isDirectory() || file.getName().contains(s);
}
});
//遍历数组
for (File file1 : files) {
if (file1.isDirectory()) {
//是文件夹则并递归
recurstion(file1,s);
} else {
//设置找到了文件
b = true;
//打印文件路径
System.out.println(file1.getPath());
}
}
}
}