利用File类,输出以下效果:
路径:F:\ceshi
|-以.java为后缀文件有 FileTest05.java
|-以.java为后缀文件有 FileTest06.java
|-以Text为前缀的文件有 Textceshi.txt
|-以Text为前缀的文件有 Textceshi2.txt
路径:F:\ceshi\yu
|-以.java为后缀文件有 FileTest01.java
|-以Text为前缀的文件有 Textyu01.txt
|-以Text为前缀的文件有 Textyu02.docx
路径:F:\ceshi\yu\zhong
|-以.java为后缀文件有 FileTest02.java
|-以.java为后缀文件有 FileTest03.java
|-以.java为后缀文件有 FileTest04.java
|-以Text为前缀的文件有 Textzhong01.pub
首先要有程序的入口
public static void main(String[] args) {
// 显示文件夹下所有的.java文件
File file = new File("F:\\ceshi");
showFile(file, 0);
}
showFile方法:这里面要用到递归
// 递归
private static void showFile(File file, int a) {
for(int i=0;i<a;i++){
System.out.print("\t");
}
System.out.println( "路径:"+file.getPath());
// 1.首先要判断是不是文件夹
if (file.isDirectory()) {
// 2.把当前目录(F:\ceshi\yu\zhong)里的文件夹和文件存入file数组里
File[] file1 = file.listFiles();
// 3.然后增强for循环去遍历
for (File f : file1) {
// 4.判断遍历的文件里面有没有文件夹
if (f.isDirectory()) {
// System.out.println("\t"+f.getPath());
showFile(f, a + 1);// 如果有文件夹,就把文件夹交上去重新运行
} else if (f.getName().endsWith(".java")) {// endsWith判断字符串是否以指定的后缀结尾
num(a);
System.out.println("以.java为后缀文件有\t" + f.getName());
} else if (f.getName().startsWith("Text")) {// startsWith判断字符串前缀
num(a);
System.out.println("以Text为前缀的文件有\t" + f.getName());
}
}
}
}
num方法:用来形成缩进的想效果
public static void num(int n) {
for (int i = 0; i < n; i++) {
System.out.print("\t");
}
System.out.print("|-");
}
File类的一些方法
File类可以访问文件目录
* 1.访问方法:
* 返回值类型--方法
* String----getName():返回对象表示的文件名或者路径名,如果是路径,就返回最后一级子路径
* String----getPath():返回对象缩对应的路径名
* File------getAbsoluteFile():返回对象绝对路径
* String----getAbsolutePath:返回对象所对应的绝对路径
* String----getParent:返回对象所对应的目录(最后一级子目录)的父目录名
* boolean---renameTo(File newName):重命名对象所对应的文件或者目录,重命名成功则返回true
* 2.文件检测方法:
* 返回值类型--方法
* boolean--- exists():判断对象所对应的文件或者目录是否存在
* boolean--- canWrite():是否可写
* boolean-- -canRead():是否可读
* boolean--- isFile():是不是文件
* boolean--- isDirectory():是不是目录(也就是文件夹)
* boolean--- isAbsolute():是不是绝对路径
* 3.获取文件信息
* long----lastModified():文件的最后修改时间
* long----length():文件类容的长度(也就是多少字节)
* 4.文件操作的相关方法
* boolean----createNewFile():当对象的文件不存在,就去重新创建一个,创建成功返回true
* boolean----delete():删除对象对应的文件或者路径
* static File createTempFile(String x,String y):在临时文件目录下创建一个空文件夹,使用给定的前缀,系统随机数和给定后缀作为文件名,是个静态方法,x大于3字节
* static File createTempFile(String x,String y,File directory):在directory指定的目录下创建空文件
* void-------deleteOnExit():注册一个钩子,指定Java虚拟机退出时,删除对象缩对应的文件和目录
* 5.目录的操作相关的方法
* boolean----mkdir():创建一个对象对应的目录,创建成功,返回true
* String[] list():对象所有的文件名和路径名都存到数组里去
* File[] listFiles():列出对象所有的文件和路径名,返回File数组
* static File[] listRoots():列出系统所有的根路径,静态方法,可以直接用File类来调用
*