/*
* 程序功能:用递归方法实现指定目录的枚举
* 演示了File类的应用,File类提供的常用方法:
* public String getName():返回绝对目录名的最后名。如:d:/downloads/software或d:/downloads/software/只返回software;但d:/返回空字符串。
* public boolean createNewFile() throws IOException:如果文件不存在并且成功创建,返回true;否则,返回false。
* public boolean delete():删除文件或目录。如果文件或目录被成功删除,返回true;否则,返回false。
* public boolean exists():文件或目录是否存在。
* public String getAbsolutePath():返回的是绝对路径。
* public String getPath():返回new File("pathname")时的pathname。如:new File("1.txt"),将返回1.txt;new File("d://downloads"),返回d:/downloads。
* public boolean isDirectory():是否为目录。
* public boolean isFile():是否为一普通文件。
* public String[] list():返回目录下的文件和子目录到字符串数组中。
* public boolean mkdir():创建目录。目录被创建,返回true;否则返回false。
* public boolean mkdirs():创建带父目录的目录。
* public boolean renameTo(File dest):重命名。
*/
package com.lwj.demo;
import java.io.*;
public class FileDemo {
static int numbersOfDir = 0;//表示文件夹数
static int numbersOfFile= 0;//表示文件数
public static void main(String[] args) throws IOException{
listDir("d://downloads");
System.out.println("文件夹数(包括d://downloads文件夹):" + numbersOfDir);
System.out.println("文件数:" + numbersOfFile);
}
static void listDir(String f) {
File file = new File(f);
if (file.isDirectory()) {
numbersOfDir++;
String[] dirs = file.list();
for (String dir : dirs) {
System.out.println(f + "//" + dir);
listDir(f + "//" + dir);
}
} else {
numbersOfFile++;
System.out.println(f);
}
}
}