一、删除文件夹(子文件全部删除)或指定文件(单一文件),可自行判定File是文件夹或文件
1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)
2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件
3,实现删除文件的方法,
4,实现删除文件夹的方法,
5,main() 方法
main() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………
实现没有问题,可以正确删除文件夹和文件。
对于其他类型文件的操作继续学习…………
二、对于单纯的想要删除指定文件夹下的指定文件可以不用上诉那么麻烦,直接遍历就可以
- File folder = new File("files");
- File[] files = folder.listFiles();
- for(File file:files){
- if(file.getName().equals("name.txt")){
- file.delete();
- }
- }
三、下面有个面试题:
要求:
一个文件夹中有很多子文件夹,这些文件夹或者子文件夹中可能有很多名字叫"aa.txt"的文件,写一个java程序一次删除所有的aa.txt文件
分析:
1、得到要删除aa.txt文件的根目录,可以用JFileChooser选择,也可以写死。 2、遍历、删除。 (1)取得目录以后,遍历其下面所有的文件夹和文件。 碰到文件时,判断其名称是否为aa.txt,如果是,删除,如果不是继续遍历, 碰到文件夹(目录)时,调用本身从(1)开始遍历该目录,完成后继续遍历。 3、结论--》递归可以实现实现:
- import java.io.File;
- public class DeleteAA {
- public static void main(String[] args) {
- DeleteAA aa=new DeleteAA();
- aa.delete(new File("D:\\0526"));
- }
- private void delete(File file){
- if(file.isDirectory()){
- File[] files = file.listFiles();
- for (File file2 : files) {
- delete(file2);
- }
- }else{
- String name=file.getName();
- if("aa.txt".equals(name)){
- System.out.println(file.getAbsolutePath());
- file.delete();
- }
- }
- }
- }