递归实现的自动衍生文件夹的小程序,理论上可无限拓展

本文介绍了一个基于Java的程序,该程序能够根据配置文件中的参数自动创建文件夹路径。通过递增配置文件中的层级编号来确保每个文件夹路径都是唯一的,并且在达到预设的最大文件数量时自动创建新的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自学的java,英语不好,代码写的不规范,大神见了莫笑话
最近有做的一个项目的有特殊的需求,就写了个自动衍生文件夹的测试程序
配置文件path.properties

有a,b,c,f,e,f几个值,值的初始值都为一


   //完全的原创,转载或使用请注释作者为:程都
    public final static String peizhiwenjian = "配置文件路径";
    //文件夹下最大文件个数,包括问价夹
    public final static int maxsize =99;
    public static String a;
    public static String b;
    public static String c;
    public static String d;
    public static String e;
    public static String f;
    public static void init() {
    //读取配置文件
        a = duqupeizhiwenjian.readValue(wenjian, "a");
        b = duqupeizhiwenjian.readValue(wenjian, "b");
        c = duqupeizhiwenjian.readValue(wenjian, "c");
        d = duqupeizhiwenjian.readValue(wenjian, "d");
        e = duqupeizhiwenjian.readValue(wenjian, "e");
        f = duqupeizhiwenjian.readValue(wenjian, "f");

    }


  //basepath 传入的绝对路径
    public static String getsavapath(String basepath) {


        init();//读取配置文件
        String path = a + "/" + b + "/" + c + "/" + d + "/" + e + "/" + f;

        String file_path=basepath+returnsava;
        File fe = new File(path);

        if (!fe.exists() && !fe.isDirectory()) {
            System.out.println("//不存在");

            fe.mkdirs();//不存在则创建文件夹
            //返回创建的文件夹路径,
            return  path;
        } else {
            //如果文件夹部位空返回文件夹中文件个数
            int i = fe.list() != null ? fe.list().length : 0;
            if (i < maxsize) {
                return returnsava;
            } else {
                if (Integer.parseInt(f) < maxsize) {
                    f = (Integer.parseInt(f) + 1)+"";
                    System.out.println(f);
                    duqupeizhiwenjian.writeProperties("f", f);
                    getsavapath( basepath);
                } else {
                    if (Integer.parseInt(e) < maxsize) {
                        e = (Integer.parseInt(e) + 1)+"";
                        f="1";
                        //写入更新后的值(也是更新了路径)
                        duqupeizhiwenjian.writeProperties("e", e);
                        //将值置为初始值
                        duqupeizhiwenjian.writeProperties("f", "1");
                        //调用自身,后面的方法
                        getsavapath( basepath);
                    } else {
                        if (Integer.parseInt(d) < maxsize) {
                            d = (Integer.parseInt(d) + 1)+"";
                            e="1";
                            f="1";
                            duqupeizhiwenjian.writeProperties("d", d);
                            duqupeizhiwenjian.writeProperties("e", e);
                            duqupeizhiwenjian.writeProperties("f", f);
                            getsavapath( basepath);
                        }
                        else{
                            if (Integer.parseInt(c) < maxsize) {
                                c = (Integer.parseInt(c) + 1)+"";
                                e="1";
                                f="1";
                                d="1";
                                duqupeizhiwenjian.writeProperties("c", "c");
                                duqupeizhiwenjian.writeProperties("e", e);
                                duqupeizhiwenjian.writeProperties("d",d);

                                duqupeizhiwenjian.writeProperties("f", f);
                                getsavapath( basepath);
                            }
                            else{
                                if (Integer.parseInt(b) < maxsize) {
                                    b = (Integer.parseInt(b) + 1)+"";
                                    e="1";
                                    f="1";
                                    d="1";
                                    c="1";
                                    duqupeizhiwenjian.writeProperties("b", b);
                                    duqupeizhiwenjian.writeProperties("c", c);
                                    duqupeizhiwenjian.writeProperties("e", e);
                                    duqupeizhiwenjian.writeProperties("d", d);
                                    duqupeizhiwenjian.writeProperties("f", f);
                                    getsavapath( basepath);
                                }
                            }
                        }

                    }
                }
            }
            return  path;

        }


    }


}
//例:
        e:/adb/1/1/1/1/1/1
        e:/adb/1/1/1/1/1/2
        e:/adb/1/1/1/1/1/3...
        e:/adb/1/1/1/1/2/1
        e:/adb/1/1/1/1/2/3...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值