-
-
public File(String parent, String child)
:从父路径名字符串和子路径名字符串创建新的 File实例。 -
public File(File parent, String child)
:从父抽象路径名和子路径名字符串创建新的 File实例。
// 文件路径名 String pathname = "D:\\aaa.txt"; File file1 = new File(pathname); // 文件路径名 String pathname2 = "D:\\aaa\\bbb.txt"; File file2 = new File(pathname2); // 通过父路径和子路径字符串 String parent = "d:\\aaa"; String child = "bbb.txt"; File file3 = new File(parent, child); // 通过父级File对象和子路径字符串 File parentDir = new File("d:\\aaa"); String child = "bbb.txt"; File file4 = new File(parentDir, child);
获取功能的方法
-
public String getAbsolutePath()
:返回此File的绝对路径名字符串。 -
-
public String getName()
:返回由此File表示的文件或目录的名称。 -
public long length()
:返回由此File表示的文件的长度。
绝对路径和相对路径
-
绝对路径:从盘符开始的路径,这是一个完整的路径。
getAbsolutePath()
-
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。
判断功能的方法
-
public boolean exists()
:此File表示的文件或目录是否实际存在。 -
public boolean isDirectory()
:此File表示的是否为目录。 -
public boolean isFile()
:此File表示的是否为文件。
创建删除功能的方法
-
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。 -
public boolean delete()
:删除由此File表示的文件或目录。 -
public boolean mkdir()
:创建由此File表示的目录。只能创建一级目录 -
public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录。可以创建一级目录,也可以创建多级目录
-
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。
-
public class Demo10Driectory { public static void main(String[] args) { System.out.println("文件名"); File file = new File("M:\\a"); getAllFile(file); } //计算N! public static void getAllFile(File file) { File[] files = file.listFiles(); for (File file1 : files) { if (file1.isDirectory()) { System.out.println(file1.getPath()); getAllFile(file1); } System.out.println(file1.getPath()); } } }
递归
-
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。必须有收敛条件
-
在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
-
构造方法,禁止递归
public class Demo08N { public static void main(String[] args) { System.out.println(sum(10)); } //计算N! public static int sum(int n) { if (n == 1) { return 1; } return n+sum(n-1); } }
public class Demo10Driectory { public static void main(String[] args) { System.out.println("文件名"); File file = new File("M:\\a"); getAllFile(file); } //计算N! public static void getAllFile(File file) { File[] files = file.listFiles(); for (File file1 : files) { if (file1.isDirectory()) { System.out.println(file1.getPath()); getAllFile(file1); } System.out.println(file1.getPath()); } } }
file1.getName().toLowerCase().endsWith(".txt")
/** * 搜索文件夹只要.txt结尾的文件 */ public class Demo11SearchDriectory { public static void main(String[] args) { System.out.println("文件名"); File file = new File("M:\\a"); getAllFile(file); } //计算N! public static void getAllFile(File file) { File[] files = file.listFiles(); for (File file1 : files) { if (file1.isDirectory()) { getAllFile(file1); } //搜索文件夹只要.txt结尾的文件 /*String name = file1.getName(); name=name.toLowerCase(); if (name.endsWith(".txt")){ System.out.println(file1.getPath()); }*/ if (file1.getName().toLowerCase().endsWith(".txt")){ System.out.println(file1.getPath()); } } } }