java删除文件夹下的所的文件及文件夹 为什么会有时能删 有时不能删除呢

这是我写的代码:大侠请多多指教 急急急
public void deleteFile(File oldPath) {
if (oldPath.isDirectory()) {
System.out.println(oldPath + "是文件夹--");
File[] files = oldPath.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
System.out.println("删除文件" + file);
file.delete();
} else {
System.out.println("函数回调");
deleteFile(file);
file.delete();
}
}
}
}
oldPath.delete();
}

lz的代码是可以实现删除文件的,有时不能删除的原因有可能是因为文件夹或文件夹中的文件有可能被打开或被别的程序使用,这种情况是删不掉的,千万不要说你没有使用,有时可能是看不到而已,可以下个小软件unlocker查看下是否有在使用。
总之:代码没问题,如果要刨根问底的话还是用我上面的方法吧(程序员就要有这种劲),否则就算了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-01
1.首先各个数据流及时close
2.及时强制执行系统回收System.gc();
再进行文件的删除操作,就可以每次正常执行删除了
第2个回答  2010-06-30
你递归太拖沓了
public void deleteFile(File oldPath) {
if (oldPath.isDirectory()) {
System.out.println(oldPath + "是文件夹--");
File[] files = oldPath.listFiles();
for (File file : files) {
deleteFile(file);
}
}else{
oldPath.delete();
}
}本回答被网友采纳
第3个回答  2010-06-30
楼主的可以呀,都可以删除
倒是楼上的回答是有问题的 ,需要递归来确定文件夹下是不是还有文件夹