猫博士

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  2 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

2010年1月13日 #

1. 递归列出指定名字的文件夹
 1    private void listDirs(String path, String keyWord) {
 2        boolean flag = false;
 3        File rootDir = new File(path);
 4        // 判断文件夹是否存在,如果不存在,返回
 5        if (!rootDir.exists()) {
 6            return;
 7        }

 8        File[] childFiles = rootDir.listFiles();
 9        if (childFiles == null || childFiles.length == 0{
10            return;
11        }

12        for (File file : childFiles) {
13            if (file.isDirectory()) {
14                if (file.getName().toString().equals(keyWord)) {
15                    System.out.println(file.getAbsolutePath());
16                    flag = deleteDirectory(file.getAbsolutePath());
17                    if (!flag){
18                        break;
19                    }

20                }

21                listDirs(file.getAbsolutePath(), keyWord);
22            }
 else {
23                continue;
24            }

25        }

26    }

27

2. 删除目录以及目录下的文件
 1    public boolean deleteDirectory(String path) {
 2        boolean flag = false;
 3        // 如果path不以文件分隔符结尾,自动添加文件分隔符
 4        if (!path.endsWith(File.separator)) {
 5            path = path + File.separator;
 6        }

 7        File dirFile = new File(path);
 8        // 如果dir对应的文件不存在,或者不是一个目录,则退出
 9        if (!dirFile.exists() || !dirFile.isDirectory()) {
10            return false;
11        }

12        flag = true;
13        // 删除文件夹下的所有文件(包括子目录)
14        File[] files = dirFile.listFiles();
15        for (int i = 0; i < files.length; i++{
16            // 删除子文件
17            if (files[i].isFile()) {
18                flag = deleteFile(files[i].getAbsolutePath());
19                if (!flag)
20                    break;
21            }
 // 删除子目录
22            else {
23                flag = deleteDirectory(files[i].getAbsolutePath());
24                if (!flag)
25                    break;
26            }

27        }

28        if (!flag)
29            return false;
30        // 删除当前目录
31        if (dirFile.delete()) {
32            return true;
33        }
 else {
34            return false;
35        }

36    }

37

3. 删除文件
 1    public boolean deleteFile(String path) {
 2        boolean flag = false;
 3        File file = new File(path);
 4        // 路径为文件且不为空则进行删除
 5        if (file.isFile() && file.exists()) {
 6            file.delete();
 7            flag = true;
 8        }

 9        return flag;
10    }

11
posted @ 2010-01-13 13:58 猫博士 阅读(117) | 评论 (0)编辑 收藏