浏览 1805 次
锁定老帖子 主题:一道面试题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-12
试完成一个函数,它递归枚举给定的目录,并将所有的.bak文件删除。但是,所有名为svn的目录将被跳过。 /** * 递归枚举给定的目录,并将所有的.bak文件删除。但是,所有名为svn的目录将被跳过。 * lupingui * @param path * 2009-3-5 */ public static void deleteFile(String path){ //如果传入的目录为空则直接退出 if (path == null){ return; } File dir = new File(path); //如果传入的目录不存在或者不是目录则直接退出 if (!dir.exists() || !dir.isDirectory()){ return; } //如果目录本身就是SVN目录则直接退出 if (dir.getName().toLowerCase().equals("svn")){ return; } //循环目录下所有文件进行处理 for (File file : dir.listFiles()){ if (file.isFile()){//如果是文件 //如果是".bak"文件则删除 if (file.getName().toLowerCase().endsWith(".bak")){ file.delete(); } }else if (file.isDirectory()){//如果是目录 //如果不是SVN文件夹 if (!file.getName().toLowerCase().endsWith("svn")){ deleteFile(file.getPath()); } } } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-12
发现问题了吗?
1.if (!file.getName().toLowerCase().endsWith("svn"))判断了两次 2.去掉代码中的所有注释,能看懂 3.建议重构,比如if(dir.getName().toLowerCase().equals("svn"))重构成: if(isSVN(dir.getName)){ return; } 4.既然是面试题,不要有hard code,把"svn"、".bak"重构成常量 |
|
返回顶楼 | |
发表时间:2009-03-12
楼上说的有道理, 面试还是很注意细节部分的
|
|
返回顶楼 | |