实现批量迭代创建目录
公司项目要创建基础数据
一共有400多张表
没办法,只有一个一个敲入Excel中再导入数据库
但还要为每张表创建一个目录
有了数据就会好办了 不用一个一个敲了
写了一个批量创建目录的程序
半小时就搞定
分享给大家,以备不时之需
package mkdir;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.Reader;/** * * @author BruceRan * 迭代创建目录和文件 * path.txt中文件存放形式像这样: * pages/systemdata/systemcode/sex/index.jsf * pages/systemdata/systemcode/degree/index.jsf */public class BatchMkdir {public static void main(String[] args) {try {FileInputStream is=new FileInputStream("path.txt");Reader read = new InputStreamReader(is);BufferedReader br = new BufferedReader(read);String str;while((str=br.readLine())!=null){String[] dir=str.split("/");System.out.println(dir.length);File dir1 = new File("d:\\dirs\\"+dir[0]);dir1.mkdir();File dir2 = new File("d:\\dirs\\"+dir[0]+"\\"+dir[1]) ;dir2.mkdir();File dir3 = new File("d:\\dirs\\"+dir[0]+"\\"+dir[1]+"\\"+dir[2]) ;dir3.mkdir();File dir4 = new File("d:\\dirs\\"+dir[0]+"\\"+dir[1]+"\\"+dir[2]+"\\"+dir[3]) ;dir4.mkdir();if(dir[4].equals("index.jsf")){File file = new File("d:\\dirs\\"+dir[0]+"\\"+dir[1]+"\\"+dir[2]+"\\"+dir[3]+"\\index.jsp");file.createNewFile();}}} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}}if (fold1 != null && !fold1.equals("")) {
ct = CreatePath(str + fold1);
}
if (!ct) {
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成文件夹
*
* @param path
* @return
* @throws Exception
*/
private static boolean CreatePath(String path) throws Exception {
File dirFile = null;
try {
dirFile = new File(path);
if (!(dirFile.exists()) && !(dirFile.isDirectory())) {
boolean creadok = dirFile.mkdirs();
if (creadok) {
System.out.println(" ok:创建文件夹成功! ");
} else {
System.out.println(" err:创建文件夹失败! " + path);
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
return false;
}
return true;
}
}
</pre>
<p>?</p>public class BatchMkdir2 {public static void main(String[] args) {try {FileInputStream is = new FileInputStream("path.txt");Reader read = new InputStreamReader(is);BufferedReader br = new BufferedReader(read);String str;while ((str = br.readLine()) != null) {String[] dir = str.split("/");System.out.println(dir.length);for (int i = 0; i < dir.length; i++) {String name = "d:\\dirs";if (!dir[i].equals("index.jsf")) {for (int j = 0; j <= i; j++) {name += "\\" + dir[j];System.out.println("====" + name);}File newDir = new File(name);newDir.mkdir();} else {for (int j = 0; j < i; j++) {name += "\\" + dir[j];System.out.println("=file===" + name);}File newFile = new File(name + "\\index.jsp");System.out.println("=file2===" + name);newFile.createNewFile();}}}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
11 楼 jieyee 2009-02-19 恩,学递归的时候就解决了。so easy 12 楼 xingqiliudehuanghun 2009-02-23 创建目录不喜欢用递归,很容易刹不住车。直接将需要创建的目录写成一条条的
字符串记录,然后逐个file.mkdirs()