锁定老帖子 主题:实现批量迭代创建目录
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-20
最后修改:2009-01-20
一共有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(); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-20
江南白衣同志曾写过一个自动生成目录的代码在测试时..
无限循环了. 最后硬盘不得不格掉以删除一此超长的目录树. |
|
返回顶楼 | |
发表时间:2009-01-20
最后修改:2009-01-20
import java.io.File; import java.io.FileInputStream; import jxl.Sheet; import jxl.Workbook; public class CreateDir { /** * @param args */ public static void main(String[] args) { try { if (args.length < 1) { throw new IllegalArgumentException("未指定Excel文件名"); } if (args.length < 3) { throw new IllegalArgumentException("指定的参数值不够"); } FileInputStream fis = new FileInputStream(args[0]); Workbook rwb = Workbook.getWorkbook(fis); fis.close(); String str = args[1]; int row = Integer.parseInt(args[2]); if (row < 1) { return; } Sheet[] sheets = rwb.getSheets(); Sheet interfaceSheet = sheets[0]; for (int i = 0; i < interfaceSheet.getRows(); i++) { String fold1 = ""; for (int j = 0; j <= row; j++) { String fold = interfaceSheet.getCell(j, i).getContents() .trim(); boolean ct = false; fold1 += "\\" + fold; 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; } }
|
|
返回顶楼 | |
发表时间:2009-01-20
用perl或者Python试试?总觉得这样简单的事情用Java有点杀鸡用牛刀了。
|
|
返回顶楼 | |
发表时间:2009-01-21
感谢上面的朋友 分享你的完整代码 很有重用性
我只是针对我的需要写了个简单的而已 |
|
返回顶楼 | |
发表时间:2009-01-21
我以前也见过一个人,递归创建目录的时候,条件没有控制好,硬盘上存在了数十万个目录,删都删不了,最后也低格硬盘了!
|
|
返回顶楼 | |
发表时间:2009-02-09
刚刚给原来的程序改了一下,
代码如下: 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(); } } } |
|
返回顶楼 | |
发表时间:2009-02-09
抛出异常的爱 写道 江南白衣同志曾写过一个自动生成目录的代码在测试时..
无限循环了. 最后硬盘不得不格掉以删除一此超长的目录树. 我有一次也创建了删不掉,最后方法是用程序删除或Ant 程序上没有目录深度的限制 |
|
返回顶楼 | |
发表时间:2009-02-11
最后修改:2009-02-11
不知道搂住是什么意思。File.mkdirs不能实现么?
似乎没必要一级级的创建。(可能我没理解你的实际需求) |
|
返回顶楼 | |
发表时间:2009-02-14
抛出异常的爱 写道 江南白衣同志曾写过一个自动生成目录的代码在测试时..
无限循环了. 最后硬盘不得不格掉以删除一此超长的目录树. 呵呵,这种事故偶同事就遇到过,惨哦! |
|
返回顶楼 | |