zoukankan      html  css  js  c++  java
  • 把一个固定文件夹内容编入xml中(Dom4J递归)

    package WildCat.Xml.com;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    
    public class readFile1_1 {
    	  
    	 private static ArrayList filelist = new ArrayList();  
    	 public static Element first1=null;
    		 
         public static void main(String[] args) throws IOException { 
        	 writeXml("RAR/jim","WildCat","RAR.xml");
           
            
         }
         //该函数有两个参数,第一个是文件路径;一个是父亲节点的名字
         public static void refreshFileList(String strPath,Element first) throws IOException { 
             File dir = new File(strPath);                     
     		 File[] files = dir.listFiles(); 
     		// Document document=DocumentHelper.createDocument(first);
               if (files == null){
            	first1=first.addElement("first");
            	first1.addAttribute("name", files.toString());
            	first1.addAttribute("id", "0");
            	 return;
               }
             //递归遍历文件夹        
    		         for (int i = 0; i < files.length; i++) { 
    		        	 
    		        	 if (!files[i].isDirectory()){
    		        	 first1=first.addElement("first1");
    		        	 String num=String.valueOf(i+1);	
    		        	 first1.addAttribute("name", files[i].getName());
    		             first1.addAttribute("id", num); 
    		        	 }
    		         }
            	   
    		         for (int i = 0; i < files.length; i++) { 
    		         		if (files[i].isDirectory()) {         		
    		         		//继续向里进
    		         			if(null!=files[i]){
    		         		 first1=first.addElement("first1");
    		         		 String num=String.valueOf(i+1);	
    			        	 first1.addAttribute("name", files[i].getName());
    			             first1.addAttribute("id", num); 
    		                 refreshFileList(files[i].getAbsolutePath(),first1);}
    		         			else
    		         			{
    		         				first1=first.addElement("first1");
    				         		 String num=String.valueOf(i+1);	
    					        	 first1.addAttribute("name", files[i].getName());
    					             first1.addAttribute("id", num); 
    				                 refreshFileList(files[i].getAbsolutePath(),first1);
    				                 //continue;
    		         			}
    		                 } 
    		         		else 
    		         		continue;		         			
    		         }      
          }
         
         public static void writeXml(String path,String rootName,String xmlPath) throws IOException
         {
        	 //根节点元素
        	 Element root=DocumentHelper.createElement(rootName);		
     		 Document document=DocumentHelper.createDocument(root);
        	
             refreshFileList(path,root);
           //输出到命令行
      		XMLWriter writer=new XMLWriter(); 		
      		writer.write(document);
      	    //写在硬盘里
    		OutputFormat format=new OutputFormat("  ",true);
    		XMLWriter writer2=new XMLWriter(new FileOutputStream(new File(xmlPath)),format);		
    		writer2.write(document);
            
         }
            
         
    }
    

  • 相关阅读:
    history对象 back() forward() go() 和pushState() replaceState()
    计算机组成原理 常用名词解释
    Angular之 Scope和 Directive
    Angular1.x DirtyChecking(脏值检查) $watch, $apply, $digest
    ES6 之 let和const命令 Symbol Promise对象
    Angular1.x 基础总结
    Node.js 常用 API
    前端自动化和前端开发环境
    CSS3入门
    HTML5入门总结 HTML5API
  • 原文地址:https://www.cnblogs.com/lixingle/p/3313027.html
Copyright © 2011-2022 走看看