果是文件则直接删除,如果是文件夹,则获得该文件夹下所有的子文件和子文件夹,然后递归调用该方法处理所有子文件和子文件夹,然后将空文件夹删除。则测试时谨慎使用第二个方法,以免删除自己有用的数据文件。示例代码如下:
import java.io.File;
/**
* 文件综合使用示例
*/
public class AdvanceFileDemo {
public static void main(String[] args) {
File f = new File("e:\\Book");
printAllFile(f);
File f1 = new File("e:\\test");
deleteAll(f1);
}
/**
* 打印f路径下所有的文件和文件夹
* @param f 文件对象
*/
public static void printAllFile(File f){
//打印当前文件名
System.out.println(f.getName());
//是否是文件夹
if(f.isDirectory()){
//获得该文件夹下所有子文件和子文件夹
File[] f1 = f.listFiles();
//循环处理每个对象
int len = f1.length;
for(int i = 0;i < len;i++){
//递归调用,处理每个文件对象
printAllFile(f1[i]);
}
}
}
/**
* 删除对象f下的所有文件和文件夹
* @param f 文件路径
*/
public static void deleteAll(File f){
//文件
if(f.isFile()){
f.delete();
}else{ //文件夹
//获得当前文件夹下的所有子文件和子文件夹
File f1[] = f.listFiles();
//循环处理每个对象
int len = f1.length;
for(int i = 0;i < len;i++){
//递归调用,处理每个文件对象
deleteAll(f1[i]);
}
//删除当前文件夹
f.delete();
}
}
}
关于File类的使用就介绍这么多,其它的方法和使用时需要注意的问题还需要多进行练习和实际使用。 |