当前位置: 代码迷 >> J2SE >> 一个java递归操作
  详细解决方案

一个java递归操作

热度:10402   发布时间:2013-02-25 00:00:00.0
求助一个java递归操作。
我要创建目录,目录不能重复。比如第一次创建目录“新文件夹“,第二次如果创建”新文件夹“,会自动保存为”新文件夹(1)“,如果第三次创建”新文件夹“,会自动保存”新文件夹(2)“,以此类推;
这个算法如何实现



------解决方案--------------------------------------------------------
Java code
import java.io.File;import java.io.IOException;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Test {    public static void main(String[] args) throws ParseException, IOException {        createFile("新建文件");        createFile("新建文件");        createFile("新建文件");        createFile("新建文件");        createFile("新建文件");    }        public static void createFile(String path) throws IOException{        createFile(new File(path));    }        public static void createFile(File file) throws IOException{        String path = file.getPath();        int i = 1;        while(true){            if(!file.exists()){                file.createNewFile();                break;            }else{                file = new File(path + "(" + i + ")");                i++;            }        }    }}
------解决方案--------------------------------------------------------
Java code
import java.io.File;public class Test5 {    /**     * @param args     */    public static void main(String[] args) {        File file = new File("D:\\AA");        if (!file.exists()) {            file.mkdirs();        }        int index = 0;        String name;        while (index < 100) {            name = getNewFolderName("D:\\AA");            file = new File("D:\\AA\\" + name);            file.mkdirs();            index++ ;        }        System.out.println("创建完成");    }    /**     * 根据穿进去的路径得到新建目录的目录名     * @param path 路径     * @return     */    public static String getNewFolderName(String path) {        String sIdx = "";        File dir = new File("D:\\AA");        File[] files = dir.listFiles();        File file = null;        String name = "新建文件夹"; //先找出是否有 "新建文件夹" 这个目录,如果有则设置name为"" ;        for (int i = 0; i < files.length; i++) {            file = files[i];            if (file.isDirectory() && (name).equals(file.getName())) {                name = "";                break;            }        }        //判断name是否为"",即判断"新建文件夹",是否存在,如果存在,则逐个判断 "新建文件夹" + i,如果不存在,则返回创建        if ("".equals(name)) {            for (int i = 1; i <= files.length; i++) {                name = "新建文件夹" + i;                for (int j = 0; j < files.length; j++) {                    file = files[j];                    if (file.isDirectory() && (name).equals(file.getName())) {                        name = "";                        break;                    }                    if (j == files.length) {                        break;                    }                }                if (!"".equals(name)) {                    break;                }            }        }        return name;    }}
  相关解决方案