1. 删除一个非空的目录 2. 移动一个非空的目录到另一个地方(剪切)。

简介: // 1,删除一个非空的目录。并加强健壮性 private static void deleteFile(File file) { if (!file.
// 1,删除一个非空的目录。并加强健壮性
    private static void deleteFile(File file) {
        if (!file.exists()) {
            System.out.println("路径不存在");
            return;
        }
        if (!file.isDirectory()) {
            System.out.println("不是目录");
            return;
        }
        // 如果当前目录中有子目录和文件,先删除子目录和文件
        File[] listFiles = file.listFiles();
        for (File f : listFiles) {
            if (f.isFile()) {
                f.delete();
            } else if (f.isDirectory()) {
                deleteFile(f);
            }
        }
        // 删除当前目录
        file.delete();

    }
0o 
练习2:
使用File类的renameTo 方法和递归实现非空目录的剪切.
public static void main(String[] args) throws IOException {

        File src = new File("c:\\abc");
        File dest = new File("d:\\");
        cutFile(src, dest);

    }

    // 移动一个非空的目录到另一个地方(剪切)。
    private static void cutFile(File srcDir, File dest) throws IOException {
        if (!srcDir.exists() || !dest.exists()) {
            System.out.println("指定的源目录或者目标目录不存在");
            return;
        }
        if (!srcDir.isDirectory() || !dest.isDirectory()) {
            System.out.println("指定的源目录或者目标目录不是目录");
            return;
        }

        // 得到源目录名
        String srcDirName = srcDir.getName(); // abc
        // 根据源目录名创建新目录名
        File destDir = new File(dest + srcDirName); // d:\\abc dest 为父路径
                                                    // srcDirName 为子路径
        // 创建目标目录
        destDir.mkdir();

        // 遍历源目录
        File[] listFiles = srcDir.listFiles();

        for (File f : listFiles) {
            // 如果是子源文件,使用renameTo方法,移动至目标目录中(该方法同时会删除源目录中的文件)
            if (f.isFile()) {
                f.renameTo(new File(destDir, f.getName())); // 指定目标文件的父目录,文件名(根据源文件名生成).
            } else if (f.isDirectory()) {
                // 如果是子目录,执行重复动作. 将源子目录 , 目标目录(父目录+//)
                cutFile(f, new File(destDir, File.separator)); // 指定源目录,指定目的路径d:\\abc\\
            }
        }
        // 删除源目录
        srcDir.delete();

    }
目录
相关文章
|
5月前
|
机器学习/深度学习 Python
删除指定文件夹重复的文件
这是一个Python脚本,用于删除指定文件夹(包括子目录)中的重复图片文件,基于文件的MD5值。程序依赖`NStudyPy`库,可通过`pip install -U NStudyPy`安装。核心函数`delete_repeat_file`接收路径和是否递归参数,调用未展示的`get_repeat_file`函数获取重复文件并删除。
44 1
|
6月前
如何批量重命名,把文件(夹)名的内容位置调整(前后移动)
该文介绍了如何使用一个工具批量修改文件名,将"中文[数字]"格式改为"中文 - 数字"。首先,从提供的百度网盘或蓝奏云链接下载工具,使用提取码获取。接着,在工具中选择文件批量复制模块,通过拖放或导入按钮添加文件或文件夹。然后,设置两个规则:一个提取中文(2个字符),另一个提取数字(20个字符)。预览无误后,选择方案3,以自定义内容("规则1 空格-空格 规则2")重命名,并确保关联到之前创建的规则。最后,执行重命名操作,查看结果,文件名应已按预期更改。
|
6月前
|
存储 Linux Shell
python移除/删除非空文件夹/目录的最有效方法是什么?
python移除/删除非空文件夹/目录的最有效方法是什么?
71 0
|
6月前
|
弹性计算 运维 Shell
判断文件或目录是否存在
【4月更文挑战第29天】
46 0
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
35 1
C#编程-112:文件夹操作之判断是否存在
C#编程-112:文件夹操作之判断是否存在
102 0
C#编程-112:文件夹操作之判断是否存在
递归删除指定文件-目录
递归删除指定文件-目录
123 0
自定义的删除函数,可以删除文件和递归删除文件夹
自定义的删除函数,可以删除文件和递归删除文件夹
163 0