-
-
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());
}
}
}
}