怎么写 java 递归?解决删除文件夹以及子文件

我最近做的java文档管理里面遇到的一个问题,怎么样?当文件夹里含有文件,删除文件夹,同时把里面的文件一起删除。怎么用递归写?????... 我最近做的java文档管理里面遇到的一个问题,怎么样?当文件夹里含有文件,删除文件夹,同时把里面的文件一起删除。怎么用递归写????? 展开
 我来答
匿名用户
推荐于2018-04-04
展开全部
import java.io.File;
public class class_99 { /**
* @param args
*/

static boolean eqs(String path)
{

boolean flag = false;
File file = new File(path);

if(!file.exists())
{
return false;
}
if(!file.isDirectory())
{
return false;
}

String[] str = file.list();

System.out.println("============"+file.list().length);

for(int i=0;i<str.length;i++)
{
File fi = new File(path+"/"+str[i]);

if(path.endsWith(file.separator))
{
fi = new File(path+str[i]);
}
else
{
fi = new File(path+fi.separator+str[i]);
}

if(fi.exists()&&fi.list().length==0)//如果是文件夹且没有东西了 就删除 前提是没有文件的存在 如果有的话
//需要另做处理 这里只是教你怎么删除空文件夹
{
java.io.File myFilePath = new java.io.File(path+"/"+str[i]); myFilePath.delete();

}
if(fi.isDirectory())//如果文件假内还有 就继续调用本方法
{
eqs(path+"/"+str[i]);
}

}

return true;
}

public static void main(String[] args) {
String str ="";//定义一个str接受字符串 eqs("D:\\text");
}
}
李毅s柏拉图
2016-12-13
知道答主
回答量:39
采纳率:0%
帮助的人:5.9万
展开全部
上面的代码好多余
/**
* 递归删除该文件或者该文件夹
*
* @param parentPath
* @return
*/
public static boolean recursionDelete(String parentPath) {
return recursionDelete(new File(parentPath));
}

/**
* 递归删除该文件或者该文件夹
*
* @param parentFile
* @return
*/
public static boolean recursionDelete(File parentFile) {
if (parentFile.isDirectory()) {
for (File file : parentFile.listFiles()) {
recursionDelete(file);
}
}
return parentFile.delete();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wqb127
2013-04-07
知道答主
回答量:35
采纳率:0%
帮助的人:16.1万
展开全部
public boolean deleteDirectory(String sPath) {
//如果sPath不以文件分隔符结尾,自动添加文件分隔符
if (!sPath.endsWith(File.separator)) {
sPath = sPath + File.separator;
}
File dirFile = new File(sPath);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists() || !dirFile.isDirectory()) {
return false;
}
flag = true;
//删除文件夹下的所有文件(包括子目录)
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
//删除子文件
if (files[i].isFile()) {
flag = deleteFile(files[i].getAbsolutePath());
if (!flag) break;
} //删除子目录
else {
flag = deleteDirectory(files[i].getAbsolutePath());
if (!flag) break;
}
}
if (!flag) return false;
//删除当前目录
if (dirFile.delete()) {
return true;
} else {
return false;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自巢湖敬老慈幼的风车草
2013-04-07 · TA获得超过207个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:114万
展开全部
这个还是自己写吧,很基本的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式