先用java.io.File获取信息,
再使用xml来保存。

解决方案 »

  1.   

    先用java.io.File获取信息,这句话没错,能找到它下面的文件和目录,递归则可以查到所有的文件了
      

  2.   

    就是这样的阿,用java.io.File一下子就全搞定了。
    觉得没有必要用xsd这样的东西,因为你对每一个文件都采取同样的操作,所以用一个循环遍历所有文件(当然含子目录时还需要递归),然后取出每一个文件的相关信息,当作文本往.xml文件里写就行了。当然你要做一些另外的工作,就是保证你写的文件是格式良好的,可以在写得时候加一些标签。
      

  3.   

    读取文件信息很简单
    关键是操作xml
      

  4.   

    用 DOM4J 很简单 来操作XML文件
      

  5.   

    package test;import java.io.File;
    import java.io.FileWriter;
    import org.dom4j.*;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;public class ListFile {
        private static void listDirectory(Element element, File file){
            Element subRoot = element.addElement(file.getName());
            File[] files = file.listFiles();
            
            //把该目录下的每一个文件添加到xml中
            for(int i = 0; i < files.length; i++){
                File aFile = files[i];
                if(aFile.isDirectory()){
                    listDirectory(subRoot, aFile);
                }else{
                    Element fileElement = subRoot.addElement(aFile.getName());
                    fileElement.addElement("size").addText(aFile.length()+"Bytes");
                    fileElement.addElement("LastModified").addText(new java.util.Date(aFile.lastModified()).toString());
                }
            }
            
        }
        public static void list(String fileName){
            //获取指定目录下的文件
            File file = new File(fileName);
            File[] files = file.listFiles();
            
            //建立xml文档
            Document doc = DocumentHelper.createDocument();
            Element root = doc.addElement("Files");
            root.addAttribute("name", file.getAbsolutePath());
            root.addComment("下面是指定目录下的所有文件列表:");
            
            //把每一个文件添加到xml中
            for(int i = 0; i < files.length; i++){
                File aFile = files[i];
                if(aFile.isDirectory()){
                    listDirectory(root, aFile);
                }else{
                    Element fileElement = root.addElement(aFile.getName());
                    //fileElement.addAttribute("Size", aFile.length() + "Bytes");
                    fileElement.addElement("size").addText(aFile.length()+"Bytes");
                    
                    //fileElement.addAttribute("LastModified",
                    //                         new java.util.Date(aFile.lastModified()).toString());
                    fileElement.addElement("LastModified").addText(new java.util.Date(aFile.lastModified()).toString());
                }
            }
            
            //将xml输出到文件中
            try{
                OutputFormat format = OutputFormat.createPrettyPrint();
                XMLWriter writer = new XMLWriter(new FileWriter(new File("c:/file.xml")), format);
                writer.write(doc);
                writer.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        
        public static void main(String[] args){
            list("c:\\windows");
        }
    }
      

  6.   

    org.dom4j.*;这个包在哪儿下?
    我用的JB9里面好象没有啊
      

  7.   

    找到这个jar了,没想到要用代理才能打开dom4j.org什么世道啊??
     Tasia(灯盏) 大哥,我测试你的程序的时候出现Null pointer异常,正在研究中