0 0

自己写的删除空文件夹程序,求优化10

 

/**
 *删除制定路径下的所有空文件夹
 *@para path 制定磁盘路径
 */
public void delEmptyFolder(String path){
    try {
         scanAndDelFolder(path);
        //再次调用该方法重新扫描跟路径的文件夹
        scanAndDelFolder(path);
        System.out.println("operation success");
     } catch (Exception e) {
        System.out.println("删除文件夹操作出错");  
        e.printStackTrace();
    }
}
/**
 *扫描并删除制定路径下的所有空文件夹
 *@para path 制定磁盘路径
 */
private void scanAndDelFolder(String path){
    File f = new File(path);
    if(!f.exists()){
         return;
    }
    if(!f.isDirectory()){
        return;
    }
    String[] tempList = f.list();  //拿到当前路径下的所有文件列表
    File temp = null;
    for(int i = 0; i < tempList.length; i++){
        //定位到制定的子目录下
        if(path.endsWith(File.separator)){
            temp = new File(path + tempList[i]);
        } else {
            temp = new File(path + File.separator + tempList[i]);
        }
        //如果这个目录不是一个directory,跳出循环
        if(temp.isFile()){
            break;
        }
         //判断当前目录下的子目录个数,不为0时依次扫描下一层子目录
        if(temp.list().length != 0){
            String tpath = temp.getPath();
            scanAndDelFolder(tpath);
        } else {
          //为空时,删除当前文件夹
            temp.delete();
        }

     }
}

 上面是自己尝试写的删除制定路径下所有不为空的文件夹的方法,基本功能已经实现。但感觉代码逻辑不够简洁,重复代码太多。
比如:当删除完所有子目录下的文件后,当前目录有可能已经变成一个空文件但不能立即删除,需要再次调用一次 scanAndDelFolder(path)方法。这个地方不知那位能分享一下自己的解决方案,求共同进步。

 

2014年3月02日 22:34

4个答案 按时间排序 按投票排序

0 0

更简单一些的,可以使用apache-commons的FileUtils.listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter), 几行代码搞定。

2014年3月03日 11:09
0 0

public static void main(String[] args) {
		String path = "c:\\a";
		File file = new File(path);
		deleteEmptyDirectory(file);
	}

	public static void deleteEmptyDirectory(File file) {
		if (file.isDirectory()) {
			File[] subFiles = file.listFiles();
			if (subFiles.length == 0) {
				file.delete();
			}
			else {
				for (File subFile : subFiles) {
					deleteEmptyDirectory(subFile);
				}
				if (subFiles.length == 0) {
					file.delete();
				}
			}
		}
	}

2014年3月03日 09:44
0 0

都说了是删除指定路径下的空文件夹,假如指定路径是“d://parent”,只要遍历删除parent文件夹里面的空文件夹,也就是你for循环的那一步。比如说"d://parent/child1"的child1文件夹是空的,直接删除child1,干嘛还要执行41行下面的代码来递归?空的文件夹里面就没有文件了好吧,根本用不到。

30.   for(int i = 0; i < tempList.length; i++){  
31.        //循环判断子目录是不是空文件  
32.        if(tempList[i].isDirectory()&&tempList[i].list()==0{  
33.            tempList[i].delete();
34.        }
35.   }

2014年3月03日 09:41
0 0

为啥要递归删除哇, 直接删除父目录, 子目录不是也跟着删掉了么

2014年3月03日 09:20

相关推荐

    删除空文件夹的小工具

    标题中的“删除空文件夹的小工具”是一款专用于查找并删除指定目录下无内容的空文件夹的应用程序。这个小工具使用C#编程语言开发,虽然作者提到代码可能较为混乱,但其核心功能是有效地清理硬盘空间,提高文件管理...

    删除所有空文件夹

    标题“删除所有空文件夹”指的是一个特定的软件功能或工具,它的主要任务是清理用户计算机中的无用空文件夹,以优化存储空间并提高文件管理效率。在长期使用计算机的过程中,用户创建、删除文件和文件夹,有时会留下...

    空文件夹搜索软件

    这种软件的目的是帮助用户优化他们的文件管理,删除无用的空文件夹,从而释放磁盘空间,提高系统性能,以及使文件结构更加清晰。 在Windows操作系统中,尽管内置的文件搜索功能可以搜索文件和文件夹,但它并不具备...

    电脑空文件夹清理工具

    【电脑空文件夹清理工具】是一种实用的计算机应用程序,专门设计用于帮助用户高效地查找并删除电脑硬盘中的空文件夹。这些空文件夹通常在频繁的文件操作、安装卸载软件或者系统清理后遗留下来,虽然它们不占用大量...

    批量压缩文件夹工具(批量删除空文件夹工具)

    这个工具提供的批量删除空文件夹程序能够快速定位并删除这些无用的文件夹,提高磁盘组织的清晰度。这种功能通常通过递归遍历文件夹结构来实现,遇到空文件夹就进行删除操作,而不会影响包含文件的非空文件夹。 在...

    删除电脑空白文件夹清理

    这个工具通常包含一个可执行文件(exe),用户只需运行该程序,就能轻松找到并删除电脑中的空白文件夹。 首先,我们要理解什么是空白文件夹。空白文件夹是指不包含任何文件或子文件夹的目录。它们可能是由于某些...

    windows空文件夹一键清理工具.zip

    这个压缩包包含了能够快速扫描并删除无用空文件夹的实用程序,以及一份详细的使用说明。 首先,我们来看"空文件夹一键清理.exe",这是一个可执行文件,是主程序。它的主要功能是对用户指定的目录进行深度扫描,找出...

    查找空文件夹v1.1.rar_打开删除_查找空文件夹

    用户在找到空文件夹后,不仅可以查看其内容,确认是否确实需要删除,还能直接在程序内执行删除操作。这显著简化了用户的工作流程,避免了必须通过操作系统手动打开每个空文件夹进行确认和操作的繁琐过程。 而“没有...

    批量删除磁盘中的空文件夹(可以遍历所有子目录)

    在IT管理中,有时我们需要对磁盘进行整理,删除无用的文件和文件夹以优化存储空间。批量删除空文件夹是一项常见的维护任务,尤其在处理大型目录结构时,手动操作既费时又效率低下。标题提到的"批量删除磁盘中的空...

    清理空文件夹

    在日常电脑使用中,我们经常会遇到许多空的文件夹,这些文件夹可能是因为之前的文件被移动、删除或者软件卸载后留下的。虽然空文件夹本身不会占用大量存储空间,但它们会使得文件管理变得混乱,查找文件时可能会浪费...

    DiRecToRy_批量扫描空文件夹

    在Windows操作系统环境中,有时用户需要清理无用的空文件夹以优化存储空间或者整理文件结构,这个工具就提供了这样的功能。它能够一次性扫描指定的目录树,找出所有空的子文件夹,并根据用户的设定进行删除。 描述...

    空文件夹查找器.rar

    使用空文件夹查找器,不仅可以优化硬盘空间,还可以保持文件系统的整洁,提高工作效率。但需要注意的是,在删除任何文件夹之前,确保它们确实无用且不会影响其他程序的运行。同时,定期进行数据备份是必要的,...

    空文件夹清理工具

    "空文件夹清理工具"就是针对这类问题设计的实用软件,它能够有效地帮助用户批量删除硬盘上的空文件夹,以及特定的Windows隐藏文件,如_desktop.ini和thumbs.db。下面我们将详细探讨这个工具的功能、原理以及如何使用...

    RemoveEmptyDirectories-v2.2.zip(删除空文件夹)

    《删除空文件夹工具——RemoveEmptyDirectories-v2.2》 在日常的计算机使用中,我们经常会在硬盘中遇到大量的空文件夹,这些文件夹可能是由于文件移动或删除后遗留下来的,它们占用着磁盘空间,同时使得文件管理变...

    空文件夹检测工具_EmptyFolderNuker.zip

    本文将详细介绍名为"EmptyFolderNuker"的空文件夹检测工具,以及如何使用它来优化我们的文件管理系统。 "EmptyFolderNuker"是一款高效实用的免费软件,专为清理电脑中的空文件夹而设计。该软件支持中文界面,对中文...

    c盘清道夫和空文件夹清理工具

    3. **空文件夹查找与删除**:空文件夹占据着磁盘空间,虽然单个文件夹所占空间微乎其微,但大量积累后也会造成磁盘空间浪费,清理工具能帮助用户找到并删除这些无用的空文件夹。 4. **软件卸载助手**:部分软件卸载...

    VB文件夹监控、自动同步备份程序.7z

    1. **文件夹监控**:该程序能够实时监控指定的文件夹,一旦发现有任何新增、修改或删除的操作,都会触发备份过程。这通常通过FileSystemWatcher组件来实现,该组件可以设置监听特定文件夹及其子文件夹,并在发生任何...

    EmptyFolderNuker(空文件夹搜索删除)v1.5免费绿色汉化版

    只需点击开始按钮,程序就会自动扫描并标记出所有的空文件夹,然后用户可以选择一键删除或者逐一确认后再进行清理,确保不会误删重要的文件夹。 在功能上,Empty Folder Nuker具有以下特点: 1. **深度扫描**:...

    c# 删除所有的空文件夹的小例子

    在C#编程中,删除空文件夹是一项常见的文件系统操作,尤其在清理、整理或优化存储空间时。这里提供了一个小例子,展示了如何使用C#有效地查找并删除指定路径下的所有空文件夹。这个功能在处理大型文件结构或应用程序...

    Bat.zip_bat_删除空文件夹_批处理 电脑名 相关BAT_清理垃圾_获取电脑名和IP地址

    7. **delete_empty_folder.bat**:同样是一个删除空文件夹的脚本,可能采用了不同的实现方式,与上述的“删除空文件夹”批处理功能相同。 8. **Computer_Name.vbs**:这不是一个`.bat`文件,而是VBScript(Visual ...

Global site tag (gtag.js) - Google Analytics