A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 覃宏海 中级黑马   /  2012-9-15 11:45  /  1109 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 覃宏海 于 2012-9-15 12:09 编辑

毕老师在讲到File的删除文件时用的for循环,同时也说可以用高级for循环来写,所以我就试用了高级for循环,但是出现了问题。
然后我回去看了高级for循环的视频,说高级for循环不能操作,只能遍历。哪么这道题怎么用高级for循环来写呢?


public static void removeDir(File dir){
                File[] files = dir.listFiles();
                for(File x : files){
                        if(files[x].isDirectory())

                                removeDir(files[x]);[/color]------------------------------------->当用高级for的时候这2个方就出问题了
                        else
                                files[x].delete();--------------------------------------->求高手帮忙  用高级for循环应该怎么写?或者我的代码写错了?
            
    }
                dir.delete();
        }
        public static void removeDir1(File dir){
                File[] files = dir.listFiles();
                for(int x=0;x<files[x].length;x++){---------------------------------->这里是普通for循环
                        if(files[x].isDirectory())
                                removeDir1(files[x]);
                        else
                                files[x].delete();
                }
                dir.delete();
        }


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
刚才对比了视频,发现我自己的代码写错了,已做修改,但问题还是没有解决

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
马睿 发表于 2012-9-15 12:03
public static void removeDir(File dir){
                File[] files = dir.listFiles();
             ...

谢了,看来我对高级for的理解错误了
回复 使用道具 举报
public static void removeDir(File dir){
                File[] files = dir.listFiles();
                for(File x : files){
                        if(files[x].isDirectory())
                                removeDir(files[x]);------------------------------------->当用高级for的时候这2个方就出问题了
                                /*removeDir(files[x]) 改成removeDir(x)  因为 removeDir 传入的是file类,x 本身就是file类,不是索引*/
                        else
                                files[x].delete();--------------------------------------->求高手帮忙  用高级for循环应该怎么写?或者我的代码写错了?
                               /*同样的 x.delete()*/
                }
                dir.delete();
        }
        public static void removeDir1(File dir){
                File[] files = dir.listFiles();
                for(int x=0;x<files[x].length;x++){---------------------------------->这里是普通for循环
                        if(files[x].isDirectory())
                                removeDir1(files[x]);
                        else
                                files[x].delete();
                }
                dir.delete();
        }

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马