递归删除文件和目录
来源:互联网 发布:大数据 选股 编辑:程序博客网 时间:2024/06/04 19:45
本来是件很简单的问题,但是由于没有深刻理解文件句柄,导致将自己绕进去。
递归代码如下:
private static void deleteFiles(File file) {//File tempFile = null;if(file.isDirectory()){File[] fileList = file.listFiles();for(int i=0; i<fileList.length; i++){//tempFile = file.listFiles()[i];if(fileList[i].isDirectory()){deleteFiles(fileList[i]);}else{//tempFile.delete();if(fileList[i].isFile()){fileList[i].delete();}}}file.delete();}else{if(file.isFile()){file.delete();}}}public void deleteFile() {File file = new File("E:\\IASHOME");deleteFiles(file);}
当执行该方法时,我打开了文件目录到要删除的文件,最终该文件和其上级目录被删除,在往上的目录并没有被删除。
原因是当打开文件的时候,文件的句柄就被我们占住了,此时删除句柄并没有删除无法删除。
什么是句柄(http://www.linuxidc.com/Linux/2011-04/35002.htm)
- 递归删除文件和目录
- 递归删除文件和目录
- java递归删除目录和生成文件
- 递归删除文件目录
- 递归删除文件目录
- JAVA 递归和非递归删除目录及文件
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录和目录下的文件
- 递归删除文件或目录
- Java递归删除目录文件
- python递归删除目录文件
- 递归实现删除文件或目录和 测试类程序
- java File 通过递归方式删除文件和目录
- 递归删除目录及包含文件目录
- python中的目录递归的创建和目录及其下的文件递归的删除
- 利用递归创建目录和删除目录
- java实现递归删除目录及目录下所有文件,递归和非递归方式都有
- Magento新闻插件-----Scalena News
- statfs获得硬盘使用情况 模拟linux命令 df
- Introducing Windows Communication Foundation in .NET Framework 4
- ucos 就绪表(Ready List):任务设置,清除和查表最高优先级任务
- 编辑mo文件的方法
- 递归删除文件和目录
- df.c 源码
- Magento Social Bookmarking Services
- 【图同构】HDU 2464
- java总结(二)
- 编程巨星的唯一秘诀
- oracle oms 服务
- spring(1) spring事务
- zoj 1526||poj 1423 big number (大数 stirling公式)