黑马程序员技术交流社区

标题: 删除某个文件夹的代码 [打印本页]

作者: 我来了    时间: 2015-12-5 02:24
标题: 删除某个文件夹的代码
删除某个文件夹,文件夹里还有文件夹和文件,求个具体代码

作者: 黑马影痕    时间: 2015-12-5 02:24
大哥,比较详细的答案了,上面的哥们分够了,给我最佳答案吧{:2_36:}

import java.io.File;
import java.util.Scanner;

public class Test7 {

        /**
         * 从键盘接收一个文件夹路径,删除该文件夹
         */
        public static void main(String[] args) {
               
        }
        //判断给定的路径是文件夹的路径
        public static File getDir(){
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个文件夹路径");
                while(true){
                String s = sc.nextLine();
                File dir = new File(s);
                if(!dir.isDirectory()){
                        System.out.println("您输入的文件夹路径不存在,请重新录入 ");
                }else if (dir.isFile()){
                        System.out.println("您录入的是文件路径,请录入文件夹路径");
                }else{
                        return dir;
                }
                }
        }
        //删除功能
        public static void deleteDir(File dir){
                File[] file = dir.listFiles();//生成文件数组
                for (File file2 : file) {
                        if(file2.isFile()){
                                file2.delete();//删除文件
                        }else if (file2.isDirectory()){
                                deleteDir(file2);//递归删除内部文件夹
                        }
                }
                dir.delete();//删除空白文件夹
        }
}

作者: lingyins    时间: 2015-12-5 09:24
        public static void main(String[] args) {
                File dir = Test1.getDir();                                        //获取文件夹路径
                deleteFile(dir);
        }

        /*
         * 删除该文件夹
         * 1,返回值类型 void
         * 2,参数列表File dir
         */
        public static void deleteFile(File dir) {       
                //1,获取该文件夹下的所有的文件和文件夹
                File[] subFiles = dir.listFiles();               
                //2,遍历数组
                for (File subFile : subFiles) {
                        //3,判断是文件直接删除
                        if(subFile.isFile()) {
                                subFile.delete();
                        //4,如果是文件夹,递归调用
                        }else {
                                deleteFile(subFile);                       
                        }
                }
                //5,循环结束后,把空文件夹删掉
                dir.delete();
        }
作者: jiangshicun007    时间: 2015-12-5 09:29
public class delateFIle {

        public static void main(String[] args) {
                File file=getFile();
                dellatef(file);
        }

        private static void dellatef(File file) {
                File[]file1=file.listFiles();
                for (File file2 : file1) {
                        if(file2.isFile()){
                                file2.delete();
                        }else{
                                dellatef(file2);
                        }
                }
                file.delete();
        }

        private static File getFile() {
                Scanner sc=new Scanner(System.in);
                System.out.println("请重新输入");
                while (true) {
                        String str=sc.nextLine();
                        File file=new File(str);
                        if(!file.exists()){
                                System.out.println("你输入的文件不存在");
                        }else if(file.isFile()){
                                System.out.println("你输入的是文件路径");
                        }else{
                                return file;
                        }
                }
        }

}

作者: jiangshicun007    时间: 2015-12-5 10:57
我是第一个给你答案的干嘛不把分给我啊??我正好差一个技术分啊!!!!!!!!!!
作者: Weidan    时间: 2015-12-7 19:23
文件夹不能直接删除 需要先遍历文件 一个一个的删除文件以后 再来删除空的文件夹
作者: 迷茫不堪的年纪    时间: 2015-12-9 10:40
不错不错,  小伙们都不错!加油!
作者: zcbcba123    时间: 2015-12-12 01:36
毕老师的视频都讲了,为啥不仔细看呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2