File 類用于文件的操作 是在 java .io包下的File類下
構造方法:
QQ截圖20170816211134.png



QQ截圖20170816211847.png
QQ截圖20170816211838.png
QQ截圖20170816211817.png
QQ截圖20170816211807.png
- list() 返回 指定目錄 下的 所有 的 目錄和文件的名字 String[]
- list(FilenameFilter filter) 得到的所有的名字 進行對應的過濾
- listFiles() 返回 指定目錄 下的 所有 的 目錄和文件的 file 對象表現形式
File[] - listFiles(FilenameFilter filter) 得到的所有的名字 進行對應的過濾
package com.qf.demo2;
import java.io.File;
import java.io.FilenameFilter;
public class Test4 {
public static void main(String[] args) {
//File file = new File("D\\java上課內容\\2015新版PPT":);
File file = new File("D:\\java上課內容");
String[] strings = file.list();
/*for (String string : strings) {
System.out.println(string);
}
File[] files = file.listFiles();
for (File file2 : files) {
System.out.println(file2);
}*/
String[] strings2 = file.list(new MyFilter());
for (String string : strings2) {
System.out.println(string);
}
File[] file2 = file.listFiles(new MyFilter());
for (File file3 : file2) {
System.out.println(file3);
}
}
}
class MyFilter implements FilenameFilter{
@Override // dir 指定的目錄 name dir 指定目錄下的文件或者是文件夾的名字
public boolean accept(File dir, String name) {
// if(name.endsWith(".txt")){
// return false;
// }
// 假如是 文件 就 過濾掉, 如果是文件夾 , 就保留
// D:\\java上課內容 \\ java新版ppt
File file = new File(dir,name);
if(file.isFile()){
return false;
}
return true;// 返回ture 證明 保留下來的
// 返回 false 要被過濾掉的
}
}
- 遞歸
- 自己調用自己
- 以此類推
- 同性質的問題 范圍縮小, 直到 結果 可以直接的出來
需求: 得到指定文件夾下的所有的文件
計算 指定文件夾 所有文件 和 文件夾的個數
package com.qf.demo2;
import java.io.File;
public class Test5 {
public static void main(String[] args) {
findFile(new File("D:\\java上課內容"));
}
// 得到 指定文件夾下一層的所有的文件和文件
// // 如果是文件 打印輸出, 如果文件夾
public static void findFile(File file){// 既可以代表文件也可以代表文件夾
// 保證非空
if(file != null){
// 保證是文件夾
if(!file.isFile()){
// 得到文件夾下的文件或者是 文件夾了
File[] files = file.listFiles();// 新版ppt ppt .pptx
for (File file2 : files) {// 把所有的文件和文件夾遍歷一遍
findFile(file2);// 無論是文件還是文件夾 都可以調用 此方法
}
}else{
System.out.println(file);
}
}else{
System.out.println("鬧著玩呢??????");
}
}
}