通过for循环方式实现删除文件夹
2016-02-17 19:44
525 查看
尝试使用for循环方式实现删除文件夹
public boolean delDirectory(String sPath){
File dirFile = new File(sPath);
if(!dirFile.exists() || !dirFile.isDirectory()){
return false;
}
LinkedList<File> list = new LinkedList<>();
File[] files = dirFile.listFiles();
boolean flag = true;
for (File file : files) {
if(file.isDirectory()) list.add(file);
else{
flag = file.delete();
if(!flag) return flag;
}
}
File tmp = null;
while(!list.isEmpty()){
tmp = list.getFirst();
files = tmp.listFiles();
if(files.length == 0){
flag = tmp.delete();
list.remove(tmp);
if(!flag) return flag;
continue;
}
for (File file : files) {
if(file.isDirectory()) list.addFirst(file);
else{
flag = file.delete();
if(!flag) return flag;
}
}
}
flag = dirFile.delete();
if(!flag) return flag;
return flag;
}
public boolean delDirectory(String sPath){
File dirFile = new File(sPath);
if(!dirFile.exists() || !dirFile.isDirectory()){
return false;
}
LinkedList<File> list = new LinkedList<>();
File[] files = dirFile.listFiles();
boolean flag = true;
for (File file : files) {
if(file.isDirectory()) list.add(file);
else{
flag = file.delete();
if(!flag) return flag;
}
}
File tmp = null;
while(!list.isEmpty()){
tmp = list.getFirst();
files = tmp.listFiles();
if(files.length == 0){
flag = tmp.delete();
list.remove(tmp);
if(!flag) return flag;
continue;
}
for (File file : files) {
if(file.isDirectory()) list.addFirst(file);
else{
flag = file.delete();
if(!flag) return flag;
}
}
}
flag = dirFile.delete();
if(!flag) return flag;
return flag;
}
相关文章推荐
- 注释并不是纯然的好
- POJ NO.3050 Hopscotch(DFS,set)
- iOS开发 贝塞尔曲线UIBezierPath
- 为什么整个互联网行业都缺前端project师?
- linux系统的用户空间和内核空间
- ElasticSearch性能优化策略
- Android Layout Inflate分析(3) - 深入Layout XML属性
- JavaScript eval() 函数
- activity 生命周期
- 【BLE】CC2541之主机端获取notify数据
- Android运营商名称显示(原)
- hibernate4之多对多关系映射(五)
- Qt多线程开发
- 南阳题目4-ASCII码排序
- java 并发阶段任务中的阶段切换
- 【原】Windows中使用Redis基本入门教程
- linux小白学习笔记(三)文件类型及权限
- Java学习笔记2016.2.17 方法重写
- iOS 打包提示 Command/usr/bin/codesign failed with exit code 1 并且钥匙串中证书全部无效的解决方案
- RecyclerView详解 —— 自定义分割线