1. package com.hudong.util.orther;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.util.List;
  7.  
  8. import org.apache.commons.io.FileUtils;
  9. import org.apache.commons.logging.Log;
  10. import org.apache.commons.logging.LogFactory;
  11. import org.dom4j.DocumentException;
  12. import org.dom4j.Element;
  13. import org.dom4j.io.SAXReader;
  14.  
  15. /**
  16. * 遍历文件
  17. *
  18. * @Title: ErgodicFile.java
  19. * @Copyright: Copyright (c) 2005
  20. * @Description: <br>
  21. * <br>
  22. * @Company: ***
  1. * @Created on 2013-8-15 上午9:41:20
  2. * @author 杨凯
  3. */
  4. public class JudgeCopyErgodicFile {
  5.  
  6. private static int k = 1, m = 1;
  7.  
  8. private final static Log logger = LogFactory.getLog(JudgeCopyErgodicFile.class);
  9.  
  10. public static void main(String[] args) throws IOException {
  11.  
  12. File file = new File("E:/公司资料/39网资料/最终xml数据");
  13. ergodicFolder(file);
  14. }
  15.  
  16. public static void ergodicFolder(File file) throws IOException {
  17.  
  18. File[] fileList = file.listFiles();
  19.  
  20. for (int i = 0; i < fileList.length; i++) { // 遍历文件
  21. if (fileList[i].isFile()) { // 判断是文件
  22. // 这里是必须的,一定要休眠,否则会导致文件的覆盖
  23. try {
  24. Thread.sleep(1l);
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. if ("summary.xml".equals(fileList[i].getName())) {
  29. try {
  30. List<Element> root = new SAXReader().read(new FileInputStream(fileList[i])).getRootElement().elements();
  31. for (Element e : root) {
  32. String content = e.element("SUMMARY_CONTENT").getTextTrim();
  33. if (!"".equals(content)) {
  34. File summaryFile = new File("E:/yiyuan/summary/" + k + "/");
  35. summaryFile.mkdir();
  36. FileUtils.copyFile(fileList[i], new File(summaryFile.getAbsolutePath() + "/" + System.currentTimeMillis() + ".xml"));
  37. m++;
  38. if (m > 1000) {
  39. k++;
  40. m = 1;
  41. }
  42. } else {
  43. logger.info(e.element("DOC_TITLE").getText());
  44. System.out.println(e.element("DOC_TITLE").getText());
  45. }
  46. }
  47. } catch (DocumentException e1) {
  48. e1.printStackTrace();
  49. }
  50. } else if ("content.xml".equals(fileList[i].getName())) {
  51. File contentFile = new File("E:/yiyuan/docinfo/" + k + "/" + System.currentTimeMillis());
  52. contentFile.mkdir();
  53. File desFile = new File(contentFile.getAbsolutePath() + "/docInfo.xml");
  54. FileUtils.copyFile(fileList[i], desFile);
  55. m++;
  56. if (m > 1000) {
  57. k++;
  58. m = 1;
  59. }
  60. }
  61. } else if (fileList[i].isDirectory()) { // 判断是目录
  62. ergodicFolder(fileList[i]); // 递归
  63. }
  64. }
  65. }
  66. }

一个自动递增生成目录和文件的cop文件类的更多相关文章

  1. MongoDB自动递增序列

    MongoDB没有像SQL数据库外开箱即用自动递增功能.默认情况下,它采用了12字节的ObjectId为_id字段作为主键来唯一地标识文档.然而,可能存在的情况,我们可能希望_id字段有一些其它的自动 ...

  2. 使用dotnet build时复制引用dll到生成目录

    默认配置下dotnet build只会输出项目代码的dll,依赖用的是dotnet缓存中的dll,只有dotnet publish才会把依赖的dll一起输出到生成目录. 在项目csproj文件中添加以 ...

  3. 文件夹操作-DirectoryInfo类

    DirectoryInfo类是一个密封类,它可以用来创建.移动.枚举目录和子目录.DirectoryInfo类包括4个属性,可以用来获取目录的名称.父目录等. DirectoryInfo类的属性表 属 ...

  4. Python实现插件机制——自动import一个目录下的所有.py文件

    假设有这样一个目录结构: /src          main.py          /plugins                __init__.py                a.py  ...

  5. 用React实现一个自动生成文章目录的组件

    原文地址:小寒的博客 功能介绍 这个组件的效果呐,就是你在浏览这个页面的时候点击右上角的叉叉看到的那个文章目录. 功能很简单,就是根据文章内容自动生成这个目录,可以快速跳转. 需要的知识点 正则 do ...

  6. 使用mybatis-generator自动生成model、dao、mapping文件

    参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...

  7. 在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world

    一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 二.实验环境 物理主机:w ...

  8. 安装doxygen(一个自动文档生成工具)+Graphviz图形可视化软件

    参考文章: http://www.fmddlmyy.cn/text21.html http://www.cnblogs.com/duguguiyu/archive/2008/06/29/1231852 ...

  9. 如何使用ThinkPHP5 ,自动生成目录?

    具体步骤: A.在build.php中按照实际需求修改定义模块的内容: B.修改Public/index.php,在代码中加入: // 读取自动生成定义文件 $build = include '/.. ...

随机推荐

  1. TechEmpower 框架性能测试数据 - 新解读

    1. TechEmpower Framework Benchmark 介绍 TechEmpower 框架性能大比拼平台从 2013 年 3 月开始以来已经历经了 18 轮测试,参与这个平台的框架平台产 ...

  2. 关于luoguU67856 数列一题

    本题采用累加法 首先这个式子\[a_n = ka_{n-1}+b\]的通项不用我说了吧 然后就是累加法 \[S_n = \sum_{i=1}^{n} a_i = \sum_{i=1}^{n} ka_{ ...

  3. semantic框架 - selection dropdown自定义样式

    semantic和Bootstrap是我最常用的前端框架. 这次需求,是要修改selection dropdown. 直接贴代码,不解释. .ui.form input:not([type]):foc ...

  4. 学习spring第一天

    Spring第一天笔记   1. 说在前面 怎样的架构的程序,我们认为是一个优秀的架构? 我们考虑的标准:可维护性好,可扩展性好,性能. 什么叫可扩展性好? 答:就是可以做到,不断的增加代码,但是可以 ...

  5. iTOP-4418开发板Qt Creator 编译注意事项

    用“Qt Creator3.2.2”打开“qt4.7.1”环境下的工程文件可能会提示版本太旧.环境不匹 配导致程序无法编译,解决办法:建立新的工程把测试程序代码粘贴上去即可(界面需要自己 添加). 在 ...

  6. LeetCode——71.简化路径

    以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径. 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此外,两个点 (..) 表示将目录切换到上一级 ...

  7. [原]procexp替换任务管理器

    2019-09-14更新:本文已经在新博客重新整理发布,请各位读者移步. process explorer有个功能是替换任务管理器,它是怎么实现的呢???   windows有个注册表项HKEY_LO ...

  8. layui 触发 select 下option 被选择事件

    1.找到值为某一个的元素 var S0 = 'dd[lay-value='+ level+']'; 2.给该元素注册点击事件  siblings(兄弟节点) $('select[name=\'leve ...

  9. STOER-WAGNER算法求解无向图最大流最小割(无指定源点汇点)

    学习粗:https://blog.csdn.net/ddelphine/article/details/77935670 模板题:http://poj.org/problem?id=2914 #inc ...

  10. LeetCode No.97,98,99

    No.97 IsInterleave 交错字符串 题目 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 输入: s1 = "aabcc&qu ...